ARC下在dealloc中将对象置空,这个做法必要吗?重写dealloc,并且将类的property置未空,这个做法有用吗?
认证高级PHP讲师
没有必要,需要在 dealloc 里把属性置空(或者 release)的是 MRC。自动引用计数中自动的意思就是不用程序员手动的来做这件事情了。你可以做个测试,比如说类 A 有个属性 b 是类 B, 然后在 A,B 的 dealloc 里都打个断点看看,被释放的时候都会被释放的,除非别的地方还有引用,或者形成了循环引用之类的。
建议你读一下文档里内存管理的部分:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html
在dealloc方法里,应该做的就是释放指向其他对象的引用,并取消原来订阅的KVO或NSNotificationCenter等通知,不要做其他事情
没有必要,需要在 dealloc 里把属性置空(或者 release)的是 MRC。自动引用计数中自动的意思就是不用程序员手动的来做这件事情了。你可以做个测试,比如说类 A 有个属性 b 是类 B, 然后在 A,B 的 dealloc 里都打个断点看看,被释放的时候都会被释放的,除非别的地方还有引用,或者形成了循环引用之类的。
建议你读一下文档里内存管理的部分:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html
在dealloc方法里,应该做的就是释放指向其他对象的引用,并取消原来订阅的KVO或NSNotificationCenter等通知,不要做其他事情