2011-01-20 163 views
0

我已经阅读了一些关于释放分配对象内存的书。释放对象的内存

有人说:object = nil,

有人说:[object release];

我很困惑,所不同的是,哪一个更好?

如果我设置object = nil,我可以看到从调试器设置了对象处理程序。如果我呼叫[object release];对象处理程序仍然是一堆数字,这是地址。

有没有人给我关于内存释放的更多信息?

从Java的角度来看,我将对象处理程序设置为null,通知运行时收集它。 Objective-C如何?

或者哪个对象需要设置nil,哪个对象需要释放。

回答

1

我相信如果你设置你的对象为null,你明确地将它设置为一个值(在这种情况下为null)。然而,如果你释放它,你告诉系统你已经完成了这块内存,并且在你认为合适的时候处理它,在你的例子中,这意味着将它设置为垃圾值。