我的应用程序在 ARC 上,但我仍然看到很少的崩溃。然后我看到我正在将我的视图控制器设置为警报视图的代表,然后当警报出现在屏幕上时,点击“确定”按钮,我正在返回上一个视图并且我当前的视图控制器正在解除分配。在它被释放后,我接到了来自 UIKit 的警报视图呼叫,它崩溃了。作为安全处理,我为它创建了一个属性,UIAlertView
现在dealloc
,我将它的委托设置UIAlertView
为nil
. 现在工作正常。
我看到另一个随机发生的崩溃:
-[CFString release]: message sent to deallocated instance 0xd2de900
我的问题是,有很多地方我创建了一些对象的本地实例(自定义视图控制器或 iOS 对象,如UIAlertView
)并将我的视图控制器设置为它的委托。我是否需要为所有这些属性以及它们的委托创建类级别nil
属性dealloc
?是否有任何其他简单的替代方法可以确保在委托对象消失后不会发生回调。