84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
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等通知,不要做其他事情