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等通知,不要做其他事情