2011-01-08 10 views

答えて

6

は、この質問をチェックアウト、私は尋ねた:iPhone memory management (with specific examples/questions)

をそれはあまりにもこれのこつを得るために私にしばらく時間がかかりました。お役に立てれば!

EDIT[NSMutableArray array]が何をするかについては、NSArray上のドキュメントによれば、このことを行います。「空の配列を作成し、返します。」 NSArrayの可変サブクラスによって使用されます(NSMutableArrayなど)。基本的には、それは同じことです:[[[NSMutableArray alloc] init] autorelease](または何か本当に似ています)。 autorelease dなので、変数を保持するにはretainに電話する必要があります。

+0

詳細な回答ありがとうございます – jini

2

1)「保持」キーワードは「配列」とは何をしていますか?

あなたが知っているように、objective-Cはメモリ管理のための参照カウントを使用しています。 「保持」は、すべてのポイントで1をインクリメントします。

2)「配列」はどこにも定義されていません。

「配列」はNSArrayで定義されています。 NSMutableArrayはNSArrayのサブクラスなので、NSMutableArrayはNSArrayで定義された関数を使用できます。 "array"は、空の配列を作成して返すクラスメソッドです。

allocic、copy、retain、達成のいずれかを明示的にインクリメントするには、次の4つの方法があります。 これらのいずれも使用せずに空の配列を作成するため、手動で "retain"を1増やします。したがって、将来、[すべてのポイントリリース]を解除してそれを割り当て解除する必要があります。

関連する問題