0

iPadアプリに3つのビューコントローラーがあります。最初のものが表示されたとき、InstrumentsのActivity Monitorは、アプリのメモリが25MBであると教えてくれました。[self presentModalViewController]呼び出しの後、新しいビューコントローラがポップアップし、メモリが最大50MBになり、3番目のメモリが70〜75MBになりました。

iPad開発に最適なViewControllerのメモリ管理は何ですか?実際のiPadを使用しているときは、常にメモリ警告が表示されます。

前もって感謝します。私の母国語ではないので、ごめんなさい。:)

4

3 に答える 3

1

iPadには256MBのRAMしかなく、これはiPhone4の半分です。

ビューコントローラが大量のリソースを読み込んでいるか、別の場所に大量のメモリを割り当てているようです。Instrumentsツールを使用して、メモリが正確にどこに割り当てられているかを確認できるはずです。

于 2010-12-19T14:14:15.113 に答える
0

私の提案は、各ビューコントローラのviewDidUnloadメソッドを確認することです。iOS 3.0以降、これは、アプリがメモリ警告を受け取ったときにiOSがメモリを取り戻そうとする場所です。

より明確にするために、このメソッドですべてのIBOutletsをnilに設定して、呼び出されたときに不要なUIのもの(その時点ではそれらのnibファイルがユーザーに表示されないため不要)がクリアされ、割り当てられたものが返されるようにする必要がありますOSへのメモリ。そして、それらが再び表示されると、viewDidLoadメソッドによって再作成されます。

サンプルコード:

- (void)viewDidUnload {
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
于 2010-12-19T15:09:22.560 に答える
0

メモリリークを確認しましたか?
機器->リーク。

http://developer.apple.com/library/ios/#documentation/Performance/Conceptual/ManagingMemory/Articles/FindingLeaks.html

もう1つの考慮事項は、すべてのオブジェクトを正しく割り当てて解放することです。これは簡単ではありませんが、必要です。

ビルドオプションから別のコントロールを有効にすることができます:RUN_CLANG_STATIC_ANALYZERコンパイル時にすべての間違ったリリースを表示します。

アルベルト、

于 2010-12-19T15:15:45.977 に答える