1

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

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

IE

去就好了么……

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

还是我应该...

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

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

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

4

2 回答 2

2

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

于 2013-02-02T21:35:53.943 回答
2

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

于 2013-02-02T22:22:02.550 回答