如果我想可能重新分配/初始化并在ARC下重用我的类的属性,我该如何销毁之前的实例?
调用self.myProperty = nil;
然后重新分配并初始化相同的属性是否合法?
谢谢, 约翰
答案 0 :(得分:2)
是
self.myProperty = nil;
self.myProperty = [PropertyClass new]; // or [[PropertyClass alloc] init]
会做你想要的。如果self
是唯一保留(保留)实例的内容,则将其缩小也会为dealloc
类调用myProperty
实例方法。
答案 1 :(得分:1)
当不再需要引用时,您可以将属性设置为nil。 分配对象时,没有必要保持为零。
背后的原因:当指针试图指向不同的位置时,如果没有其他对旧位置的引用旧对象将被解除分配。