検索

ホームページ  >  に質問  >  本文

object-c - iOS 開発における ARC でのメモリ解放に関する問題

ページ 1 のボタンをクリックしてページ 2 にジャンプします。この時点でメモリが 5 MB 増加します。その後、ページ 2 のボタンをクリックしてページ 2 を閉じます。このとき、ページ 2 の dealloc メソッドが実行されます。ですが、5 MB のメモリは解放されません。なぜ?
ARC下のメモリ解放は間に合わないのでしょうか?
ビュー コントローラーまたはオブジェクトが本当に解放されたかどうかを判断するにはどうすればよいでしょうか?

注: Xcode のデバッグ セッションを通じてメモリ使用量を確認します。

曾经蜡笔没有小新曾经蜡笔没有小新2694日前1289

全員に返信(2)返信します

  • 世界只因有你

    世界只因有你2017-07-03 11:45:05

    次のコードをクラスに追加し、クラスが閉じられたときのログがあるかどうかを見て、このクラスのリリース状態を判断します。 リーリー

    例えばクラス名のログ

    MyViewController, 如果释放成功的话会有dealloc MyViewControllerその後、再度デバッグして原因を特定します。

    考えられる状況:

    • どこかで

      このクラスが参照されています strong

    • )block中直接使用self(应该使用__weak typeof(self) weakSelf = self,然后在block中使用weakSelf

    • 返事
      0
  • 巴扎黑

    巴扎黑2017-07-03 11:45:05

    1. コントローラーは-(void)deallocメソッドを書き換えます。コントローラーが閉じるかポップするときにメソッドが呼び出されるかどうかを確認します。

    2. 分析を使用してアプリのメモリを分析します

    3. xcode バージョン 8.0 以降を使用している場合は、メモリ マップを表示できます。

    返事
    0
  • キャンセル返事