ページ 1 のボタンをクリックしてページ 2 にジャンプします。この時点でメモリが 5 MB 増加します。その後、ページ 2 のボタンをクリックしてページ 2 を閉じます。このとき、ページ 2 の dealloc メソッドが実行されます。ですが、5 MB のメモリは解放されません。なぜ?
ARC下のメモリ解放は間に合わないのでしょうか?
ビュー コントローラーまたはオブジェクトが本当に解放されたかどうかを判断するにはどうすればよいでしょうか?
注: Xcode のデバッグ セッションを通じてメモリ使用量を確認します。
次のコードをクラスに追加し、クラスが閉じられたときのログがあるかどうかを見て、このクラスのリリース状態を判断します。 リーリー
例えばクラス名のログ。
考えられる状況:MyViewController
, 如果释放成功的话会有dealloc MyViewController
その後、再度デバッグして原因を特定します。このクラスが参照されています
strong
)
block
中直接使用self
(应该使用__weak typeof(self) weakSelf = self
,然后在block中使用weakSelf
コントローラーは
-(void)dealloc
メソッドを書き換えます。コントローラーが閉じるかポップするときにメソッドが呼び出されるかどうかを確認します。分析を使用してアプリのメモリを分析します
xcode バージョン 8.0 以降を使用している場合は、メモリ マップを表示できます。