如何避免在回调释放的委托对象时发生崩溃

时间:2013-08-23 17:53:28

标签: ios objective-c cocoa-touch crash automatic-ref-counting

我的应用程序在ARC上,我仍然看到很少的崩溃。然后我看到我将视图控制器设置为警报视图的委托,然后当屏幕上出现警报时,点击“确定”按钮我回到上一个视图,我的当前视图控制器被取消了。在它被解除分配后,我接到了UIKit的一个电话,用于警报视图并且它崩溃了。作为安全处理,我为UIAlertView创建了一个属性,现在在dealloc,我将此UIAlertView的委托设置为nil。现在工作正常。

我看到另一个随机发生的崩溃:

-[CFString release]: message sent to deallocated instance 0xd2de900

我的问题是,我在很多地方创建了一些对象的自定义实例(自定义视图控制器或iOS对象,如UIAlertView),并将我的视图控制器设置为它的委托。我是否需要为nil中的dealloc创建所有这些属性及其代理的类级别属性?还有其他简单的替代方法可以确保在委托对象消失后不会发生回调。

0 个答案:

没有答案