0

オブジェクトを保存してから別のコントローラーを提示するボタンクリックハンドラーがあります。私の問題は、クリックするたびに割り当てられたメモリが増加することです。

  if (success) {
      ALRollsViewController *rollsController = [[UIStoryboard storyboardWithName:@"Entry" bundle:nil]instantiateViewControllerWithIdentifier:@"RollsController"];
      rollsController.camera= selectedCamera;
      [self presentViewController:rollsController
                         animated:YES
                       completion:nil];
  }

presentViewController:rollsController ではなく、dismissViewControllerAnimated を使用すると、ビルドアップはありません。インスタンス化されたコントローラーを何らかの方法で解放する必要がありますか?

4

1 に答える 1

0

あなたは何を期待していますか?クリックするたびに、UIStoryboard の新しいインスタンスがインスタンス化されます。ここでの命名規則は、オブジェクトの名前 (プレフィックスなしの名前) で始まるメソッドは、オブジェクトの新しく作成されたインスタンスを返すというものです。

見て比べNSArray arrayWith...たりNSString stringWith...

さらに、表示されるたびにView Controllerのインスタンスが必要です。ビュー コントローラが閉じられるまで、両方のインスタンスが保持されます。(私は UIStoryboard インスタンスがそれほど長く保持されることに 100% 肯定的ではありませんが、新しく提示されたビュー コントローラーはヒープとスタックの一部を消費します。)

于 2014-05-20T21:13:58.617 に答える