如何告诉iPhone NSURLConnection中止

时间:2011-02-23 06:35:25

标签: iphone asynchronous nsurlconnection

我有一个适当使用NSURLConnection的应用程序。这些异步调用最终完成并正确释放(看起来像),但有时需要一些时间才能完成。

因此,有时我退出应用程序(注意,不仅仅是发送背景),其中一些连接仍处于活动状态。如果我立即重启应用程序,应用程序会在启动时冻结。 (didFinishLaunchingWithOptions似乎永远不会被调用)。

虽然我不确定这些连接是否是问题,但终止或取消任何剩余可能是件好事。有关如何做到这一点的任何建议吗?

关于如何调试重启的奖励点。 (我已经将NSLog语句保存到可下载的文件中)

3 个答案:

答案 0 :(得分:7)

您可以通过向其发送取消命令取消任何NSURLConnection。

[connection cancel];

来自Apple docs

  

取消a的异步加载   请求。一旦调用此方法,   接收人的代表将不再   接收任何消息   NSURLConnection的。

您的启动问题可能很复杂,但很难说不知道您正在下载什么类型的数据以及如何使用它。

答案 1 :(得分:0)

确保您在连接上调用release。在删除最后一个引用之前,它可能不会在套接字上调用shutdown或close。我做了类似这样的事情而没有引用问题。

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection release];
[request release];

答案 2 :(得分:0)

取消上次请求: [NSURLConnection cancelPreviousPerformRequestsWithTarget:self];

取消任何特定要求: [请求取消]; 注意:这里的请求是NSURLConnection的实例