我读过一些关于释放分配对象内存的书。
有人说:object = nil,
有人说:[object release];
我很困惑,有什么不同,哪一个更好?
如果我设置object = nil
,我可以看到已经从调试器设置了对象处理程序。如果我调用[object release];
对象处理程序仍然是一堆数字,这是地址。
有没有人给我更多关于记忆释放的信息?
从Java点视图,我将对象处理程序设置为null,通知运行时收集它。 Objective-C怎么样。
或者哪个对象需要设置nil,哪个对象需要释放。
答案 0 :(得分:1)
我相信如果你将对象设置为null,你就明确地将它设置为一个值(在这种情况下为null)。然而,如果你发布它,你告诉系统你已经完成了那块内存并且它按照它认为合适的方式处理它,在你的例子中,这意味着将它设置为垃圾值。
答案 1 :(得分:1)