1

iOS 5.0でのみ問題が発生し、モーダルビューが表示されているときにメモリ不足の警告が表示されると、白い画面が表示されることがあります。これは、タブバーコントローラーがすべてのビューを解放するために発生すると思います。

同じシナリオでiOS4.0に問題が発生することはありません。私が考えることができる2つの説明があります:

  1. iOS 5はより多くのRAMを使用し、アプリの残りは少なくなります
  2. iOS 5は、メモリ不足の状況を異なる方法で処理します

5.0より前のバージョンでは、追加のメモリを解放することで、メモリ不足の警告に応答できました。5.0では、メモリ不足の警告が初めて表示されたようですが、モーダルビューコントローラの下にあるすべてのものがそのビューをクリアします。トレースにより、メモリ警告の後、モーダルビューコントローラの下にあるすべてのコントローラのviewフィールドがに設定されていることが確認されnilます。

iOS 5が以前のバージョンと比較してメモリ不足の状況をどのように処理するかについての情報(理想的にはAppleから)を誰かに教えてもらえますか?すべてのビューをクリアするのではなく、必要に応じてメモリを解放できるようにしたいと思います。

4

2 に答える 2

0

私も同じ問題を抱えていて、修正しました。問題は、xib 経由で接続するアウトレットが viewDidUnload メソッドで nil に設定されていることです。このメソッドは、メモリ警告が発生したときに、現在表示されていないすべてのビューで呼び出されます。これらのビューに戻ると、それらの viewDidLoad メソッドが再度呼び出されます。これを修正する唯一の方法は、setNil メソッドを viewDIdUnload から dealloc メソッドに削除することであり、すべて正常に動作します。

于 2013-01-25T04:55:20.160 に答える
0

最後の段落の質問への回答として、 WWDC 2011のiOS Performance in Depthビデオを探しています。13 分または 14 分あたりから始まる iOS 5 でのメモリ不足の処理について説明し、特に 16 分あたりから始まるメモリ不足の警告メッセージの変更について説明します。

ただし、アプリの何が問題なのかを理解するのに役立つかどうかはわかりません.

于 2012-02-04T21:55:33.047 に答える