1

「メモリ警告」の後にメモリを解放するために、スタック内のすべてのビューコントローラ (ルートを除く) を削除したいと考えています。

最後のコントローラーで popToRootViewController を実行します。

プロセス:ルート (プッシュ) -> AController (プッシュ) -> BController (メモリ警告の後、戻る) -> ルート

(BController 内)

- (void)didReceiveMemoryWarning {
    CMLog(@"BController");

    [super didReceiveMemoryWarning];

    CMLog(@"[allControllers lastObject]");
    [self.navigationController popToRootViewControllerAnimated:NO];
}

ログ

  1. メモリ警告を受信しました。
  2. [RootViewController didReceiveMemoryWarning]
  3. [AController didReceiveMemoryWarning]
  4. [BController didReceiveMemoryWarning]
  5. [BController didReceiveMemoryWarning]:[allControllers lastObject]
  6. (popToRootViewControllerAnimated)

だから私はプロセスを繰り返します

  1. メモリ警告を受信しました。
  2. [RootViewController didReceiveMemoryWarning]
  3. [AController didReceiveMemoryWarning]
  4. [BController didReceiveMemoryWarning]
  5. [AController didReceiveMemoryWarning](<<<<重複)
  6. [BController didReceiveMemoryWarning](<<<<重複)
  7. [BController didReceiveMemoryWarning]:[allControllers lastObject]
  8. (popToRootViewControllerAnimated)

数回試行した後、メモリ不足のためにアプリがクラッシュします

スタック内のView Controllerを単純に削除できますか? メモリを解放しますか?

4

0 に答える 0