2012-03-28 13 views

答えて

2

obj-cコレクションのオブジェクトは、が解放されたときに解放されます。(これはリリースされているものと同じではありません)。実際にコレクションにオブジェクトを追加すると、コレクションはそのオブジェクトの所有権を管理し、その要素に余分なリリースを置く必要はありません。

+0

私はdeallocし、リリースする必要がありますか? – Voldemort

+0

いいえ、配列を保持したまま解放する必要があります。自動的に割り当てが解除され、その要素が解放されます。 – Vladimir

+0

したがって、1 alloc = 1 release?ありがとう。 – Voldemort

2

ガイドを確認してください。より具体的には、 アレイ部及びアレイの基礎トピック:

アレイは管理メモリ環境でを割り当て解除された場合、各 要素は、解放メッセージが送信されます。だから、

配列を解放すると、0にその保持カウントをもたらし、それはおよそ が割り当て解除されるように、その後で、この時点でオブジェクトがreleaseメッセージが表示されます場合。 それ以外の場合、配列を解放すると、他の の通常のオブジェクトと同じように、保持カウントがデクリメントされます。

また、アレイにオブジェクトを配置すると、retainというメッセージが表示されます( )。

関連する問題