过早终止异步NSURLConnection加载

时间:2012-11-02 22:18:02

标签: ios xcode nsurlconnection nsthread

我正在制作一个应用程序,为数据选择器异步加载数据,然后重新加载数据选择器,一切都很好。

问题是,如果用户点击文本字段,应用程序会发出信息的网络请求,但是如果它尚未加载,然后用户点击后退按钮,则视图会消失,但数据仍然在后台加载。

我已尝试在自定义线程上运行此加载方法,然后在[myThread cancel];上调用viewWillDisappear,但数据仍会加载。我希望避免用户使用数据,因为他不再需要加载数据。有什么帮助吗?

我在考虑杀死com.apple.nsurlconnectionloader,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

这里要注意的一点是,取消NSThread不会立即终止它,它只会将其标记为终止。

我要做的是在NSURLConnection内实施您的NSOperation个代表,当您想要取消下载时,可以在操作上调用cancel,这将设置其{ {1}}属性isCanceled。然后,您可以将其用作标志来终止操作的runloop,并且下载将不会继续。

Apple在这里使用NSOperation有一个很好的技术手段https://developer.apple.com/library/ios/#technotes/tn2109/_index.html