2009-08-11 8 views

答えて

35

いいえ、コピーしません。それはそれらを保持します。はい。オブジェクトを配列に追加した後、オブジェクトを安全に解放できます。

The docsは、いつものように、非常に明確にこれを綴る:

配列は、その内容-でマネージメモリ環境への強い参照を保持し、そのIDを配列に追加される前に、各オブジェクトが保持してメッセージを受信して​​、配列から削除されたとき、または配列の割り当てが解除されたときの解放メッセージ。異なるオブジェクト所有権セマンティクスを持つコレクションが必要な場合は、代わりにCFArray Reference、NSPointerArray、またはNSHashTableの使用を検討してください。

+2

偉大な答え。また、+ arrayWithObjects:所有されていない( "autoreleased")配列を返すので、配列を失わないように保持する必要がありますが、配列内のオブジェクトは配列の長さになります。 –

+0

ありがとう! Stack Overflow(スタックオーバーフロー)に投稿する前にドキュメントを検索することを知っておく必要があります。 私の質問に答える時間をとってくれてありがとう。 –

+1

答えてくれてありがとうございます - その宣伝はもはや参考にはありませんが、FYI。私が知る限り、そのセクション全体はなくなっています。サブクラス化情報といくつかの関数呼び出しを見れば、それを推論することができます。それは主に私が正しい方向に向いているからです。 – RonLugge

関連する問題