0
copyWithZoneについてのAppleの文書を読みました:「返されたオブジェクトは、送信者がそれを解放する責任を負いません」。 しかし...私は戻ってくるものをどのようにリリースすることができます...私は夢中になる!コードのiPhone:copyWithZone:返される前にオブジェクトを解放しますか?
サンプル:語ったリリースである必要があり
- (id)copyWithZone:(NSZone *)zone {
MyObject* obj = [[[self class] allocWithZone:zone] init]; // explicit retain
[obj fillTheObj];
return obj; // implicit retain
}
? 私は2回保持されますか? Uhhh ...
Okkkk、オブジェクトの送信者ではなく、送信者です。それはもっと明らかです。しかし、私は本当に狂っている。だから... myObject.var = [localvar copy]を、retainとして定義されたmyObjectのプロパティで渡し、deallocで解放することができます。それはうまくいくでしょう? – Oliver
@Oliver - あなたがそうしたら、あなたは過ぎ去ります。 'var'プロパティが' retain'として宣言されていれば、正しい割り当ては 'myObject.var = [[localvar copy] autorelease]'になります。しかし、あなたが本当に望むのは 'copy'としてプロパティを宣言することだと思えば、単に' myObject.var = localvar'を実行するだけです。 –