我是否有人使用[variable release]
和其他时间使用variable = nil
清理内存?
您何时使用每一个?有什么区别?
最佳答案
如果将属性设置为retain
,则这3个等效:
[self setProperty:nil];
self.property = nil;
[property release]; property = nil;
在每种情况下,将释放该对象,然后将其设置为nil,以便从那时起不允许对该对象的所有访问。 “设置”实例变量非常方便,因为它确保您只能在此上下文中释放一次对象,因为两次调用
self.property = nil
不会在第二次执行任何操作,但是调用[property release]
会两次释放该对象,即使您可能只保留一次。在大多数情况下,我发现最不容易使保留属性执行其操作并在大多数情况下避免显式
retain
和release
调用的错误。关于ios - Objective-C内存管理:什么时候使用`[variable release]`vs`variable = nil`来清理内存?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3270602/