ARC下在dealloc中将对象置空,这个做法必要吗?重写dealloc,并且将类的property置未空,这个做法有用吗?
认证高级PHP讲师
その必要はありません。dealloc で属性を空にする (または解放する) 必要があるのは MRC です。自動参照カウントは、プログラマが手動でカウントする必要がないことを意味します。たとえば、クラス A がクラス B である属性 b を持っているというテストを実行し、他の場所に参照がない限り、A と B の割り当て解除にブレークポイントを設定するか、循環参照が形成されているかどうかを確認できます。など。
ドキュメントのメモリ管理の部分を読むことをお勧めします: https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html
dealloc メソッドで行うべきことは、他のオブジェクトへの参照を解放し、KVO や NSNotificationCenter などの最初にサブスクライブされた通知をキャンセルすることです。それ以外のことは行わないでください。
その必要はありません。dealloc で属性を空にする (または解放する) 必要があるのは MRC です。自動参照カウントは、プログラマが手動でカウントする必要がないことを意味します。たとえば、クラス A がクラス B である属性 b を持っているというテストを実行し、他の場所に参照がない限り、A と B の割り当て解除にブレークポイントを設定するか、循環参照が形成されているかどうかを確認できます。など。
ドキュメントのメモリ管理の部分を読むことをお勧めします: https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html
dealloc メソッドで行うべきことは、他のオブジェクトへの参照を解放し、KVO や NSNotificationCenter などの最初にサブスクライブされた通知をキャンセルすることです。それ以外のことは行わないでください。