Alloc、new、または copy を使用する場合、オブジェクトを所有していて、オブジェクトを解放する必要があることを理解しています。オブジェクトを保持している場合、それを解放する必要があることを理解しています。
しかし、メソッドの最後に次のステートメントがあるとします。
return [[UIImage alloc] initWithContentsOfFile:path];
メモリ空間を割り当てたのでオブジェクトを所有していUIImage
ますが、呼び出し元に返されたため、オブジェクトへの参照がありません。私のdealloc()
方法では、参照がないため、リリースできません。
だから私の質問は、これは正しいですか:
return [[[UIImage alloc] initWithContentsOfFile:path] autorelease];
この場合、呼び出し元が所有権を取得したい場合は、返されたオブジェクトを保持でき、最終的には自分自身を解放する必要があると思います。
ご協力いただきありがとうございます。