オブジェクトがメモリから解放されたかどうかを確認するには?iphoneメモリ管理の問題
私は、オブジェクトを作成するためにalloc | copy | retainを使用すると、オブジェクトを手動でリリースする必要があることを知っています。インスタンスクラスメソッド(NSString stringwithformat:
)を使用する場合、オブジェクトはNSAutoRealeasePool
によって自動的に解放されますが、時には(void)dealloc
関数で解放するためにオブジェクトが使用されることがあります。
誰が私に
を伝えることができ、オブジェクトを解放するのalloc機能の後に即座に
[object release]
、(void)dealloc
で[object release]
、とNSAutoReleasePool
の違いは何ですか?いつ
(void)dealloc
関数が呼び出され、NSAutoReleasePool
はいつメモリを解放するのですか?すべてのループサイクルがわかります。どのようにコードからチェックできますか?私はヘッダ内の変数を宣言し、retainとしてプロパティを設定すると、そのオブジェクトにはalloc関数を使用できますが、メモリリークは発生しませんが、this postからヘッダにretainオブジェクトが宣言されたようです両方ともオブジェクトを保持するため、オブジェクトを割り当てることができなくなります。なぜ誰かがメモリリークを引き起こすことなくこのようにコード化できる理由を教えてください。
retag: "memory"& "management" to "memory-management" – Jeremiah
これは本当にこの形式ではうまく答えられない質問です。Objective-Cプログラミングに関する良い本を手に入れて勉強する必要があります。 (または単にメモリ管理を放棄してARCを貼ってください) –