ARC和nilling属性

时间:2014-04-12 15:44:35

标签: objective-c automatic-ref-counting

如果我想可能重新分配/初始化并在ARC下重用我的类的属性,我该如何销毁之前的实例?

调用self.myProperty = nil;然后重新分配并初始化相同的属性是否合法?

谢谢, 约翰

2 个答案:

答案 0 :(得分:2)

 self.myProperty = nil;
 self.myProperty = [PropertyClass new]; // or [[PropertyClass alloc] init]

会做你想要的。如果self是唯一保留(保留)实例的内容,则将其缩小也会为dealloc类调用myProperty实例方法。

答案 1 :(得分:1)

当不再需要引用时,您可以将属性设置为nil。  分配对象时,没有必要保持为零。

背后的原因:当指针试图指向不同的位置时,如果没有其他对旧位置的引用旧对象将被解除分配