【问题标题】:Reassigning an object with ARC使用 ARC 重新分配对象
【发布时间】:2013-01-17 23:20:58
【问题描述】:

如果我在对象的 init 中创建了一个 NSArray。

然后我想为相同的属性重新创建一个新的 NSArray,我应该先将旧的设置为 nil 吗?

可以走了吗……

self.arrayProperty = [[NSArray alloc] init];

或者我应该这样做...

self.arrayProperty = nil;
self.arrayProperty = [[NSArray alloc] init];

(为了这个例子,我只是使用一个数组,但它是关于属性的一般问题)。

如果它有任何区别,它是一个强大的属性。

【问题讨论】:

    标签: objective-c cocoa properties automatic-ref-counting


    【解决方案1】:

    第一种方法很好,您不需要在分配新对象之前将其显式设置为nil,因为设置器会在保留和分配新对象之前释放属性的支持对象。正是你在 MRC 下会做的事情(除了这里你不自动释放对象)。

    【讨论】:

    • 谢谢,我想应该没问题,只是想检查一下。
    【解决方案2】:

    这和 ARC 是一样的,当没有更多对它的引用时,一个对象就会死掉。唯一的区别是在第二个代码中你做了一个无用的额外操作。

    【讨论】:

      猜你喜欢
      • 2012-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      • 2012-06-22
      相关资源
      最近更新 更多