1
私はcopyWithZoneについてアップルのドキュメントでお読みください。copyWithZone戻り値の所有権と保持カウント
「返されたオブジェクトは、それを解放する責任がある送信者によって保持さ暗黙的です」。だから、
私はこれ書いた場合:
- (id)copyWithZone:(NSZone *)zone {
MyObject* obj = [[[[self class] allocWithZone:zone] init] autorelease];
[obj fillTheObj];
return obj;
}
をし、私が呼ぶ:
MyStuff* obj = [varobj copy];
がobj
保持されますか?自動解除を設定しないと、保持カウントはどうなりますか?
@Matthew Frederick:大丈夫ですので、Appleの文書によれば、IMPLICITの保持はありません。それはあなたのコードのために明白なものですか? – Oliver
私の編集したバージョンを読む。送信者はコピーを実行しているので、暗黙的にコピーを保持します。これは私にとってはかなり明白ですが、「保持」という言葉はどこにも使われていません。 –
@Matthew Frederick:OK、どうすれば自動解除を削除できますか?コールの中には保持があり、コールの外に暗黙のものがありますか?言い換えれば、ここでIMPLICITとは何ですか?私は明示的なものしか見ることができない、または2つの保持がある。 – Oliver