ドキュメントはそれについて何も言及していません。古いオブジェクトが「削除」され、新しいオブジェクトがその場所に来ると、古いオブジェクトはどうなりますか?私はそれを自分でリリースする必要がありますか?NSMutableArrayの-replaceObjectAtIndex:withObject:は、新しいオブジェクトで置き換えられた古いオブジェクトを解放しますか?
2
A
答えて
12
いいえ、あなたはそれを自分でリリースする必要はありません。
置き換え対象は0
新しいオブジェクトに等しい保持カウントを持っている場合は、エラーが出るかもしれませんが保持されます。古いオブジェクトが解放されます。
3
あなたはそれを解放する必要はありません。
あなたはのalloc、コピーを実行したり、それにを保持ので、メモリの責任を負いませんしませんでした - これでドキュメントが非常に明確です。
すでに設定されているメモリ管理ルールに違反していない限り、SDKの各メソッドのメモリ管理手順をAppleが文書化するとは思わないでしょう。ドキュメントに何も言わなければ、デフォルトのルールが適用されると考えることができます。
1
ドキュメントは非常に明確に、ファイルの先頭にこの権利を述べている:
にNSArrayと同様に、NSMutableArrayののインスタンスは、その内容への強い参照を維持します。ガベージコレクションを使用しない場合、オブジェクトを配列に追加すると、オブジェクトは保持メッセージを受け取ります。オブジェクトが変更可能な配列から削除されると、解放メッセージを受け取ります。オブジェクトへの参照がそれ以上ない場合は、オブジェクトの割り当てが解除されていることを意味します。プログラムがそのようなオブジェクトへの参照を保持している場合、オブジェクトが配列から削除される前にオブジェクトを保持メッセージを送信しない限り、参照は無効になります。
これは、すべての方法についてこれを繰り返し記述することはありません。
関連する問題
- 1. Sinon:スタブとオブジェクト全体を置き換えて新しいオブジェクトに置き換えます
- 2. 表示オブジェクトをFlash内の新しい表示オブジェクトに置き換えます。
- 3. 古いdivコンテンツを新しいコンテンツに置き換えます。
- 4. オブジェクトのnsmutablearrayを持つオブジェクトのNSmutableArrayを持つオブジェクト - 解放する方法
- 5. 古いインストーラを新しいインストーラに置き換えよう
- 6. NSMutableArrayのオブジェクトを解放する必要がありますか?
- 7. はremoveFromSuperviewオブジェクトを解放しますか?
- 8. 隠しオブジェクトを解放しますか?
- 9. viewDidUnloadのオブジェクトを解放しますか?
- 10. 同じ種類の新しいオブジェクトを作成し、新しいオブジェクトを新しいオブジェクトに置き換えるメソッド
- 11. NSMutableArray。オブジェクト値が置換されていません
- 12. .NETガベージコレクタはいつこのオブジェクトを解放しますか?
- 13. 古い画像がiOSアプリケーションで新しい画像に置き換えられた後に表示される
- 14. 古いtfsサーバ `oldtfs`を新しいものnewtfs`で置き換える方法
- 15. C#でCOMオブジェクトを解放します
- 16. CLRはCOMオブジェクトからメモリを解放しますか?
- 17. Javaコレクションのオブジェクトを置き換えるにはどうしたらいいですか?
- 18. Wordpress-新しいテーマで古いテーマを置き換える問題
- 19. NSURLConnectionオブジェクトは解放できません。
- 20. オブジェクトのメモリを解放します
- 21. ポインタのないオブジェクトを解放しますか?
- 22. 古いOpencvコードを新しいC++ APIに変換すると、cvGetSubRectを置き換えますか?
- 23. オブジェクトを解放できません
- 24. wamp reinstall - 新しいファイルを古いファイルに置き換える方法
- 25. C++でのオブジェクトの置き換え
- 26. ビューを新しいスーパービューに移動すると、古いスーパービューから自動的に解放されますか?
- 27. ガベージコレクタが解放しているオブジェクトを確認します。
- 28. フリーズした親オブジェクトから新しいオブジェクトを作成する
- 29. Facebook APIはJSONの新しい行を置き換えます
- 30. のJava:たとえば新しいオブジェクト
retainCount> 1(他のオブジェクトがまだ保持している場合)の場合は、すぐにエラーになることはありません。 – rein
@rein - あなたが正しいです。私はより正確なフライシングへの答えを編集しました。 – Kriem
+1明確かつ簡潔な答えです。ありがとう。 –