1

新しいビューコントローラーをプッシュするたびに、約 3MB 追加されます。TestVC は、新しいバージョンの VC をプッシュする方法を 1 つ備えたまったく新しい VC です。

 UIViewController *vc = [[TestVC alloc] initWithNibName:nibName bundle:nil]; 
    [self.navigationController pushViewController:vc animated:YES];
    [vc release];

popviewController を呼び出すと、メモリが解放されません (アクティビティ モニターを監視しています)。

[self.navigationController popViewControllerAnimated: YES];

そのため、アプリ内の移動 (約 60 ページ) を追加すると、メモリが増え続けます。initWithNibName には何か特別なものが必要ですか? ポップするとき、どうにかしてペン先を解放する必要がありますか?

4

1 に答える 1

2

最も可能性の高い問題は、内のrelease何かの失敗-[TestVC dealloc]です。私はまず検査によってその方法を評価します。問題が見つからない場合は、Instruments の Leaks インストゥルメントを使用して、過剰に保持されている特定のものを見つけます。Leaks がそれを見つけられない場合は、Instruments の heapshot ツールを使用して、何が割り当てられているかを確認します。これほど大きなものがあると、見つけやすいはずです。Use Your Loafに Heapshot の使用に関する簡単な概要があります。

于 2011-03-14T17:08:28.983 に答える