我在dealloc方法中发布由@property指令创建的对象,如此
-(void)dealloc
{
[object release], object = nil;
}
我有两个问题。
答案 0 :(得分:1)
是的,在释放对象后将指针设置为指向nil是一个好习惯。原因是,如果您在对象被取消分配后尝试访问该对象的值,您将尝试访问垃圾值(它被称为悬空指针),您的应用程序将崩溃。但是如果指针设置为nil,那么你可以对它做任何事情,因为你可以向nil对象发送消息。
要将两行代码合二为一,只需使用访问器方法:
self.object = nil; //this will both release an object and set its pointer to nil
答案 1 :(得分:0)
这是释放对象的正确位置。显然,只有你没有使用ARC进行编译,尽管与ARC一样,你甚至无法调用release
。
没有必要将其设置为nil
。它将被彻底摧毁 - 为什么还要将它设置为nil
?