私は現在ARCを学んでいます。オートリリースプールのオブジェクトは排水後にのみ削除され、残っていない場合は削除されます。参照カウント環境で自動解放プール。排水と保持
-1
A
答えて
0
リンゴドキュメントから抽出link
( ガベージコレクションを使用するものとは対照的に)、NSAutoreleasePoolオブジェクトは自動解放メッセージを受信し、排水時に送信た オブジェクトが含まれてい これらのオブジェクトのそれぞれにメッセージを解放します。したがって、オブジェクトにリリースではなく を送信すると、そのオブジェクトの有効期間は少なくともプール自体が排出されるまで に拡張されます(オブジェクト が引き続き保持される場合は長くなる可能性があります)。オブジェクトは同じプールに複数回入れられます。この場合、プールに入れられた時間はそれぞれ のリリースメッセージを受け取ります。
注:ARCでは、retain、release、retainCount、またはautoreleaseを明示的に呼び出すことはできません。
0
はい、しかしARCでは、一般にautoreleasePoolsを扱っていません。大規模なループでは、オブジェクトを解放できるようにするには@autoreleasepool
を使用することがありますが、ほとんどの場合、必要なオブジェクトへの強い参照と、参照が必要なオブジェクトへの弱い参照を保持しますが、保持ループは避けてください。 ARCは魔法のようにほとんどすべてを処理します。
0
自動解放プール内のオブジェクトは、ドレイン後にのみ削除され、保持されない場合は削除されますか?
はい。 drain
は、自動解放プール内のオブジェクトの保持カウントをデクリメントします。その結果、オブジェクトの保持カウントがゼロになると、それは通常どおりに破棄されます(もはや存在しなくなるので、明らかにプール内には存在しません)。
関連する問題
- 1. 自動解放プールのスコープ
- 2. 自動解放プールのデバッグ
- 3. 現在の自動解放プールが排水されていると、起動された障害はメモリから解放されますか?
- 4. 自動解放プールがクラッシュするアプリケーション
- 5. 実行ループの最後 - 自動解放プールの回復
- 6. JOGLで自動解放プールがありません
- 7. UITableViewCell、デキューと自動解放?
- 8. マルチスレッドと自動解放のプールは、Cocoaで一緒に動作しますか?
- 9. ココア自動解放
- 10. すべてのスレッドで独自の自動解放プールが必要ですか?
- 11. 保持/解放の問題
- 12. スレッドセーフな保持/解放
- 13. 保持/解放 - 参照数
- 14. 実行ループの終了時にプールを排水するときのオブジェクトの値の保持方法
- 15. プロパティを持つメモリの保持/解放
- 16. 自動解放プールのオブジェクトはどのように参照されますか?
- 17. 接続プール内の接続の解放。
- 18. フリーダイヤルブリッジオブジェクト、保持および解放
- 19. のObjective-C:自動解放混乱
- 20. Mavenアーティファクトの解放の自動化
- 21. カスタムinitメソッドでの自動解放
- 22. iOS main.mテンプレートにreturn文と自動解放プールが含まれているのはなぜですか?
- 23. executeFetchRequest:resultのNSArrayを返すときは、保持するか、自動解放するか、何もしませんか?
- 24. READ COMMITTED分離レベルでロックを保持/解放するとき
- 25. 完了前にObj-C自動解放ネットワークリクエストが解放されました
- 26. __weakオブジェクトが自動解放プールに追加されるのはなぜですか?
- 27. GCDのARCの下に自動解放プールを作成する必要はありますか?
- 28. NSAutoreleasePool。新しい自動解放プールを作成するのはいつ適切ですか?
- 29. iPhone OSの自動解放プールをI-drainまたは-releaseする必要がありますか?
- 30. 関数がオブジェクトを作成して返しても、それは自動解放プールにあるはずです