我正在制作一个应用程序,为数据选择器异步加载数据,然后重新加载数据选择器,一切都很好。
问题是,如果用户点击文本字段,应用程序会发出信息的网络请求,但是如果它尚未加载,然后用户点击后退按钮,则视图会消失,但数据仍然在后台加载。
我已尝试在自定义线程上运行此加载方法,然后在[myThread cancel];
上调用viewWillDisappear
,但数据仍会加载。我希望避免用户使用数据,因为他不再需要加载数据。有什么帮助吗?
我在考虑杀死com.apple.nsurlconnectionloader,但我不知道该怎么做。
答案 0 :(得分:0)
这里要注意的一点是,取消NSThread不会立即终止它,它只会将其标记为终止。
我要做的是在NSURLConnection
内实施您的NSOperation
个代表,当您想要取消下载时,可以在操作上调用cancel
,这将设置其{ {1}}属性isCanceled
。然后,您可以将其用作标志来终止操作的runloop,并且下载将不会继续。
Apple在这里使用NSOperation有一个很好的技术手段https://developer.apple.com/library/ios/#technotes/tn2109/_index.html