2

ドキュメントはそれについて何も述べていません。古いオブジェクトが「削除」され、新しいオブジェクトがその場所に来ると、古いオブジェクトはどうなりますか? 自分で解放しなければなりませんか?

4

3 に答える 3

12

いいえ、自分でリリースする必要はありません。

置換されたオブジェクトの保持カウントが0の場合、エラーが発生する可能性があります。

新しいオブジェクトは保持されます。古いオブジェクトが解放されます。

于 2009-05-25T12:38:00.657 に答える
3

リリースする必要はありません。

割り当てコピー、または保持を実行しなかったため、メモリの責任を負いません。これにより、ドキュメントは非常に明確になります。

すでに設定されているメモリ管理ルールに違反しない限り、AppleがSDKの各メソッドのメモリ管理手順を文書化することは期待していません。ドキュメントに何も記載されていない場合は、デフォルトのルールが適用されると想定できます。

于 2009-05-25T12:45:13.827 に答える
1

ドキュメントには、ファイルの上部にこの権利が非常に明確に記載されています。

NSArray と同様に、NSMutableArray のインスタンスはそのコンテンツへの強力な参照を維持します。ガベージ コレクションを使用しない場合、オブジェクトを配列に追加すると、オブジェクトは保持メッセージを受け取ります。オブジェクトが可変配列から削除されると、解放メッセージを受け取ります。オブジェクトへの参照がこれ以上ない場合、これはオブジェクトの割り当てが解除されたことを意味します。プログラムがそのようなオブジェクトへの参照を保持している場合、オブジェクトが配列から削除される前に保持メッセージを送信しない限り、参照は無効になります。

すべてのメソッドについてこれを繰り返し文書化する意味はありません。

于 2009-05-25T21:49:16.837 に答える