私はオブジェクト上でautoreleaseを呼び出すと、保持カウントを減少させ、最後にプール排水時にオブジェクトをオートリリースプールからクリアすると考えました。しかし、autoreleaseがオブジェクトに対して呼び出されると、実行時にどのようにクラッシュするのですか?誰もが例で説明することができます。オブジェクトに対してautoreleaseを呼び出すと、どうやって実行時にクラッシュするのですか?
-3
A
答えて
1
MRR/MRCでは、プログラマはオブジェクトの保持と解放を行います。リリース数がリリース数より多い場合、オブジェクトが存続し、リリース数が保持数と一致するとオブジェクトが解放され、その後にさらにリリースが行われるとクラッシュが発生することがあります。
自動解放は遅延リリースであるため、リリース缶のようにクラッシュする可能性があります。例えば。サンプルのタイムライン:
保持/作成したオブジェクト
使用目的
自動解放オブジェクト - 後で
を解放するために、プールに格納されているオブジェクトのオブジェクトを使用してください - 細かいことはまだ
生きているよう解放オブジェクト - オブジェクトは解放され、占有メモリは再利用できる。
...
プールが空になり、オブジェクトのポインタが解放され、リリースされたオブジェクトに参照されるようになりました。
これは単なるシナリオの1つです。オブジェクトをあまりにも多く(それが保持されている以上)自動オートリースする。
これはです。です。これを修正するには、マニュアルメモリ管理を慎重に検討するか、自動化してARCに切り替えて、手動でリークを回避してください。
0
Xcodeの "静的アナライザー"を使用すると、手動によるカウント保持の問題を追跡することができます。なぜあなたの記憶問題が発生するのかを説明します。それを実行し、あなたの問題を修正してください。
関連する問題
- 1. turnOn()を呼び出したすべてのオブジェクトに対してturnOff()を実行するだけです。turnOff()
- 2. タイプidのオブジェクトに対してメソッドを呼び出すとき
- 3. フロータイプに対して 'rest'パラメータをどうやって行うのですか
- 4. 実行時にファクトリをいつどこに呼び出すか?
- 5. 実行時にメソッドを呼び出す
- 6. どのように同時にAJAX呼び出しを実行する - PHP
- 7. PowerShellで複数のオブジェクトに対してメソッドを呼び出すにはどうすればよいですか?
- 8. jquery $ .post呼び出しで返されたデータに対してjquery呼び出しを実行する方法
- 9. Golang:どうやってcgoなしでwin32 APIを呼び出せますか?
- 10. FreeMarkerテンプレートのオブジェクトに対してJavaメソッドを呼び出すにはどうすればよいですか?
- 11. 実行時にUWPアプリケーションプロトコル名を取得できますか?どうやって?
- 12. 同時に複数のAjax呼び出しを実行すると、1つを除いてすべてのAjax呼び出しが実行されます。
- 13. 実行時プロセスを呼び出す方法としてトレースしますか?
- 14. マネージコードからの呼び出し時にC++ DLLがクラッシュする
- 15. PHPSpecのパラメータを変更してマルチプル時間を呼び出した関数呼び出しをどうやって模擬しますか?
- 16. オブジェクトのメソッド呼び出しをオブジェクトのインスタンス化と同時に行うことはできますか?
- 17. 実行時にプログラムから呼び出しをキャッチし、それらを他の呼び出しにマップする
- 18. シェイプレスとグレムリンスカラ: `as 'の呼び出しの結果をどうやって返すのですか?
- 19. クラスdraw()メソッドは直接呼び出されたときに機能しますが、別のオブジェクトによって呼び出されるとクラッシュします
- 20. 自分自身を呼び出す関数の流れにどうやって従うのですか?
- 21. 実行時に式ツリーを呼び出すメソッドを呼び出す
- 22. 実行時に名前とメソッドに基づいてメソッドを呼び出す
- 23. 実行時に関数のすべての呼び出しをリストする方法は?プログラムの実行中に
- 24. 私はこのコードを実行するたびに、どうやって結果が違うのですか?
- 25. メインフォームからフォームを呼び出してプログレスバーを実行するにはどうすればよいですか?
- 26. 実行時に関数呼び出しをスキップするC++
- 27. どうやって 'あいまいな時間'に対処しますか?
- 28. メソッドが呼び出されたときにプログラムによってクラッシュするUIButton
- 29. onSurfaceTextureAvailableがどのテクスチャビューに対して呼び出されるか
- 30. メソッドがオブジェクトに対して呼び出されたかどうかをテストする方法 - Rails RSpec
コードを表示できますか? ARCを使っていないのはなぜですか? – Paulw11
autoreleaseは保持カウントを減少させません。オブジェクトを自動解放プールに入れます。 –