当一个 NSURLConnection 异步请求返回时,如果一个应用程序已经死了、死了、睡着了,或者正在退出的过程中会发生什么?
在我看来,在我的异步函数假定程序数据有效之前,我最好至少保留一个“程序正在退出”的标志。
谢谢。
当一个 NSURLConnection 异步请求返回时,如果一个应用程序已经死了、死了、睡着了,或者正在退出的过程中会发生什么?
在我看来,在我的异步函数假定程序数据有效之前,我最好至少保留一个“程序正在退出”的标志。
谢谢。
在 iOS 4.0 及更高版本中,当用户关闭应用程序时,它会进入挂起状态。除非您告诉它不这样做,否则在用户再次打开应用程序之前,委托回调不会触发。您可以通过在回调中编写一些 NSLog 来测试自己。然后,在测试设备上运行应用程序,并在看到连接开始后尝试关闭应用程序。稍等片刻,重新打开应用程序(在 Xcode 中仍然“运行”),并观察委托回调被调用。
//somewhere just after you start the async connection
NSLog(@"Connection started...");
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
NSLog(@"Connection failed with error - %@",error);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"D- Connection finished loading");
}
如果您希望在用户关闭应用程序后继续运行连接,请阅读iOs 应用程序编程指南中的“在后台执行代码”。