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