我是否有人使用[variable release]和其他时间使用variable = nil清理内存?

您何时使用每一个?有什么区别?

最佳答案

如果将属性设置为retain,则这3个等效:

  • [self setProperty:nil];
  • self.property = nil;
  • [property release]; property = nil;

  • 在每种情况下,将释放该对象,然后将其设置为nil,以便从那时起不允许对该对象的所有访问。 “设置”实例变量非常方便,因为它确保您只能在此上下文中释放一次对象,因为两次调用self.property = nil不会在第二次执行任何操作,但是调用[property release]会两次释放该对象,即使您可能只保留一次。

    在大多数情况下,我发现最不容易使保留属性执行其操作并在大多数情况下避免显式retainrelease调用的错误。

    关于ios - Objective-C内存管理:什么时候使用`[variable release]`vs`variable = nil`来清理内存?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3270602/

    10-13 07:05
    查看更多