Я использую файл для обработки моих звонков в мои API, который выглядит следующим образом:Swift IOS контроллер API перестал работать
import UIKit
protocol APIControllerProtocol {
func JSONAPIResults(results: NSArray)
}
class APIController: NSObject {
var delegate:APIControllerProtocol?
func GetAPIResultsAsync(urlString:String, elementName:String) {
//The Url that will be called
var url = NSURL.URLWithString(urlString)
//Create a request
var request: NSURLRequest = NSURLRequest(URL: url)
//Create a queue to hold the call
var queue: NSOperationQueue = NSOperationQueue()
// Sending Asynchronous request using NSURLConnection
NSURLConnection.sendAsynchronousRequest(request, queue: queue, completionHandler:{(response:NSURLResponse!, responseData:NSData!, error: NSError!) ->Void in
var error: AutoreleasingUnsafeMutablePointer<NSError?> = nil
//Serialize the JSON result into a dictionary
let jsonResult: NSDictionary! = NSJSONSerialization.JSONObjectWithData(responseData, options:NSJSONReadingOptions.MutableContainers, error: error) as? NSDictionary
//If there is a result add the data into an array
if jsonResult.count>0 && jsonResult["\(elementName)"]?.count > 0 {
var results: NSArray = jsonResult["\(elementName)"] as NSArray
//Use the completion handler to pass the results
self.delegate?.JSONAPIResults(results)
} else {
println(error)
}
})
}
}
Я зову его, используя что-то похожее на это:
var APIBaseUrl: String = "http://***.se/**/**.php"
var urlString:String = "\(APIBaseUrl)"
self.api.delegate = self
api.GetAPIResultsAsync(urlString, elementName:"groupActivities")
Это недавно работал большой, но теперь мое приложение вылетает, и я получаю эту строку в APIController выделены:
let jsonResult: NSDictionary! = NSJSONSerialization.JSONObjectWithData(responseData, options:NSJSONReadingOptions.MutableContainers, error: error) as? NSDictionary
на Я думаю, что я изменил это, что я переключился с мобильного 4G-Интернета на мой WiFi.
В журнале я получаю: fatal error: unexpectedly found nil while unwrapping an Optional value
Изюминкой говорит: Thread 5: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
Это происходит независимо от того, что API я звоню. Я запускаю Xcode 6.0.1 и не делал никаких последних обновлений.
Cheers!
Люди сообщают об ошибке с подключением Xcode 6GM и Wi-Fi. Закрыть, Xcode & simulator, очистить папку DerviedData, а затем повторить попытку. http://stackoverflow.com/questions/25372318/error-domain-nsurlerrordomain-code-1005-the-network-connection-was-lost –
Отлично работает, пожалуйста, напишите как ответ. Хотя та же ошибка появляется в другой строке, но я верю, что это некоторая другая ошибка в моем коде, так как другие вызовы API работают нормально. Огромное спасибо! @SamBudda –
Есть ли решение, если это происходит на устройстве? – Kaili