初歩的な質問はこちら:
基本的なメモリ管理を理解しようとしています。セッターメソッドをオーバーライドしている場合、次は着信文字列のメモリ管理を適切に処理しますか?
- (void)setMyString:(NSString *)string
{
if (_myString != string){
[string retain];
[_myString release];
_myString = string;
}
}
ここでの私の論理は、その if ステートメントに入るとすぐに、着信文字列の所有権を取得したいので、保持します。次に、_myString オブジェクトを解放します。次に、_myString オブジェクトを文字列オブジェクトに設定します。これが私の混乱の原因です。この時点で myString オブジェクトを保持する必要がありますか? または、文字列オブジェクトと等しく設定した結果、既に所有権を持っていますか?
ありがとう!