我有一个 ViewController 被推送到 NavigationController 堆栈上。一旦它被插入堆栈,它就开始通过下载器对象下载一些图像,该对象负责在后台线程中下载图像。即使通过 WiFi 下载图像也可能需要几秒钟的时间。当图像下载完成后,下载器对象指示 ViewController 布局其图像,将新下载的图像放在分页 UIScrollView 的后面。然而,在此期间,用户可能按下了返回按钮,而 ViewController 现在可能已被释放/解除分配,因此下载器对象将导致 SIGABRT 错误消息并且应用程序将崩溃。
我应该如何处理这种情况?有什么方法可以检查释放/解除分配的实例吗?或者某种方式来捕获错误并记录,然后忽略,它?
最佳答案
您最好的选择是使用归零弱引用。当然,对于 iOS 5.0,这只是一个“弱”的引用。但是,如果您的目标是低于 iOS 5.0,那么您需要一个自定义解决方案。 Mike Ash 在 this 中有一个很好的描述。文章。
关于iphone - 如何处理 ViewController 被释放,在触发后台线程后,指的是现在释放的 ViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10648175/