jai*_*ani 2 memory-management ios automatic-ref-counting
我的项目启用了ARC.我有一个类是NSObject的直接子类,我的类有一个NSArray(强引用).我怎样才能发布我的阵列?
我的理解
在ARC中无需释放物体
在dealloc方法中将nil设置为我的NSArray(强引用)
- 在viewDidUnload视图控制器中将nil设置为我的NSArray(强引用)
这是释放我的NSArray的正确方法吗?如果不是那么正确的方法是什么?
首先,viewDidUnload不再使用,因此不是一种选择.其次,除非需要进行一些特殊的清理,否则在解除分配时,不需要手动清除类的实例变量.当一个对象被释放时,它会释放所有实例变量的所有权,这样只要没有其他任何东西通过强引用指向它们,它们就会自动解除分配.因此,正如您所说,正确的方法是什么都不做.取消分配对象后,阵列将自行解除分配.
也就是说,如果你真的想,你可以清除指向数组的指针,如下所示:
myArray = nil;
Run Code Online (Sandbox Code Playgroud)
然后,如果没有指向它的其他强引用,则将释放该数组,这将依次解除分配数组中没有指向其他强引用的任何元素.