我正在开发一个用swift编写的新应用程序,我已经看到这个错误信息已经发出垃圾邮件说:重新启动模拟器。
太糟糕了,似乎在我的情况下这不是答案,用Objective-C编写的旧应用程序似乎使用完全相同的方法确实可以正常工作,但是当我对Api(我们的)进行NSUrlConnection调用时它似乎不适用于新的应用程序。
响应是一个适当的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;
}
显然我更换了公司名称和确切的被叫网址,因为我无法分享这些,我可以保证这些是正确的。
有没有人看到导致我的组织的错误?
答案 0 :(得分:0)
哭了好几个小时,直到我睡着了,醒来然后重新开始工作,它再次神奇地起作用。
感谢奥巴马! 无论如何,只要确保清除除xcode之外的所有数据,这可能会导致这些问题,而不仅仅是重新启动模拟器。
答案 1 :(得分:0)
错误是"网络连接丢失"。
这是您在任何时候都必须预料到的错误,因为您的应用用户可能会随时丢失其网络连接。它可以随时回来。
解决问题无权。你必须应对它,例如当它发生时不会崩溃,而不是悬挂。用户解决问题的能力也不在其中。
较旧的应用程序运行正常,因为您在网络连接未丢失的不同时间使用它。而且似乎不应该哭,你应该考虑发生了什么。如果您的网络连接丢失,除了等待,您无能为力。
你所尝试的所有这些事情都是毫无意义的;没有什么能解决丢失的网络连接。 (好吧,在我的家里,确保没有人踢过将路由器连接到电话插头的电缆会有帮助)。