私はいくつかのカスタムクラスのオブジェクトとNSMutableArrayのを持って、NSMutableArrayを持っていれば、すべてのオブジェクトも解放する必要がありますか?
NSMutableArray *list = [NSMutableArray new];
iはまた、*リスト内のすべてのオブジェクトを解放しなければならないと宣言しましたか?
私はいくつかのカスタムクラスのオブジェクトとNSMutableArrayのを持って、NSMutableArrayを持っていれば、すべてのオブジェクトも解放する必要がありますか?
NSMutableArray *list = [NSMutableArray new];
iはまた、*リスト内のすべてのオブジェクトを解放しなければならないと宣言しましたか?
オブジェクト参照をNSMutableArray
に配置すると、配列にすべてのオブジェクトが保持されるため、そのオブジェクトの保持カウントが増加します。 release
メッセージを配列に送信すると、同じメッセージが参照するすべてのオブジェクトにも同じメッセージが送信されます。
したがって、配列上にそれらを保持していない場合は、何もしないでください。
いいえ、アレイが解放されると、アレイ内のすべてのオブジェクトにリリースメッセージが送信されます。したがって、自動解放プールが解放または排水されると、リストのすべてのオブジェクトがこの場合解放されます。
NSMutableArray
にオブジェクトを追加すると、オブジェクトにretain
が呼び出されます。配列を解放すると、追加時にオブジェクト上にretain
という名前が以前に呼び出されたため、のすべてのオブジェクトがにリリースされます。
release
を明示的に呼び出す必要はありません。インスタンスでは、release
が十分です。
あなたが従わなければならないメモリ管理の基本的な規則を理解するには、 "Memory Management Rules"と読んでください。