Я работаю над новым приложением, написанным быстро, я видел, как это сообщение об ошибке было отправлено спам SO, говоря: Перезапустите симулятор.Swift NSURLConnection мгновенно возвращается с ошибкой 1005
Слишком плохо, кажется, что в моем случае это не ответ, более старое приложение, написанное на объективе C, которое, похоже, использует точно такие же методы, отлично работает, но когда я делаю вызовы NSUrlConnection для Api (наш), похоже, это не работает для нового приложения.
Ответ является подходящим 200 с некоторыми данными json, без перенаправления он отлично работает в приложении Android, которое я разрабатываю одновременно.
пояснит, что у меня есть:
func getRequest() -> NSMutableURLRequest {
let request = NSMutableURLRequest(URL: NSURL(string: package.fullPath)!)
request.HTTPMethod = package.apiMethod.description;
request.HTTPBody = "hi".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
return request;
}
func execute() {
conn = NSURLConnection(request: getRequest(), delegate: self);
if let c = conn {
Debug.log("** api-connection-start **");
}
}
соответствующих слушатели (класс реализует NSURLConnectionDataDelegate):
func connection(connection: NSURLConnection!, didReceiveResponse response: NSURLResponse!) {
Debug.log("** api-recieved-url-response? **")
let httpResponse = response as NSHTTPURLResponse
statusCode = httpResponse.statusCode
}
func connection(connection: NSURLConnection!, didReceiveData data: NSData!) {
Debug.log("** api-recieving-data **")
self.responseData.appendData(data)
}
func connection(connection: NSURLConnection, didFailWithError error: NSError) {
Debug.log("** api-fail-with-error **")
ErrorClass.message(error)
if let responseListener = listener {
responseListener.onError(package, error:error)
}
}
У меня есть точки останова на все эти вспомогательные методах, только ошибка didFailWith мгновенно вызываются с ошибка, содержащая:
2015-03-31 16:58:29.853 myappname[537:4136] {
NSErrorFailingURLKey = "http://xxxxxxxx/valid/api/call";
NSErrorFailingURLStringKey = "http://xxxxxxxx/valid/api/call";
NSLocalizedDescription = "The network connection was lost.";
NSUnderlyingError = "Error Domain=kCFErrorDomainCFNetwork Code=-1005 \"The network connection was lost.\" UserInfo=0x7fdf3bc465d0 {NSErrorFailingURLStringKey=http://xxxxxxxx/valid/api/call, NSErrorFailingURLKey=http://xxxxxxxx/valid/api/call, _kCFStreamErrorCodeKey=-4, _kCFStreamErrorDomainKey=4, NSLocalizedDescription=The network connection was lost.}";
"_kCFStreamErrorCodeKey" = "-4";
"_kCFStreamErrorDomainKey" = 4;
}
Очевидно, я заменил название компании и точный URL-адрес, так как я не могу поделиться ими, я могу гарантировать, что они верны.
Кто-нибудь видит ошибку, вызывающую мои ткани?
1005 сетевое соединение утеряно. Вы уверены, что вы подключены к Интернету? – sasquatch
Приложение polder objectieve c подключается с помощью соединения nsurl просто отлично. Кроме того, использование сафари также работает –
У меня такое ощущение, что сейчас он работает, хотя вчера я даже перезагрузился. Думаю, мне нужно больше времени на то, чтобы очистить проект, кроме того, что он чист и перезагружен. –