問題タブ [didreceivememorywarning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
593 参照

iphone - UIImagePicker背景を変更しますか?

モーダルビューコントローラーとして、カメラスタイルのイメージピッカーを開いています。画像ピッカーを開いてからキャンセルすると、前のビューが正常に戻ります。

イメージピッカーを開いて写真を撮り、戻ってキャンセルすると、前のビューの背景が失われ、メインウィンドウが透けて見えます。誰かがこれがどのように起こるか知っていますか?

0 投票する
2 に答える
3885 参照

iphone - OpenGL アプリでの didReceiveMemoryWarning への対応方法

アプリが大量のメモリを使用しています。通常は正常に動作しますが、しばらく再起動していないロード済みのデバイスでは、悪名高いメモリ不足エラーで破棄されます。

didReceiveMemoryWarning応答してキャッシュの一部を解放したいと考えています。

しかし、私のアプリは OpenGL ES テンプレートに基づいており、ビュー コントローラーがないという問題があります。glViewへの参照を保持するApp Delegateだけがあります。

didReceiveMemoryWarning応答できるようにメッセージをトラップするにはどうすればよいですか?

0 投票する
3 に答える
588 参照

iphone - iPhoneのメモリを縮小?

私のアプリケーションでは、電話の電源が長時間切られていない場合、didReceiveMemoryWarning がはるかに速く呼び出されることに気付きました。私のアプリケーションがアクセスできるメモリのプールは、時間の経過とともに縮小しているように見えます。

他の誰かがこれに気づきましたか、それについての説明はありますか? これが起こらないようにするために私が取ることができる一連の行動はありますか?

写真を撮ったり操作したりするのにかなりの量のメモリを使用すると、これが発生することに気付きます。電話の電源を切って再起動すると、問題が解決します。私のアプリケーションがアクセスできるメモリが縮小している可能性はありますか、それとも既存のメモリが断片化されており、再起動すると既存のメモリが最適化される可能性はありますか?

この問題に関する説明やヘルプは素晴らしいでしょう。ありがとう。

0 投票する
2 に答える
1235 参照

iphone - iPhone アプリがメモリ警告を受け取り、6.8MB で強制終了されました

私のアプリには、時間のかかるジョブを 1 分以上実行するスレッドがあり、アプリは約 6.8MB のメモリを消費します。しばらくするとメモリ警告が表示され、その後強制終了されます。私が解放できるものは何もありません.7MBのメモリすら使用していません.私を夢中にさせています.何かアドバイスをお願いします.

0 投票する
7 に答える
41321 参照

iphone - メモリ警告を受信しました。UIImagePickerController を表示する場合は Level=1

これは私を夢中にさせています!!!

sourceType = UIImagePickerControllerSourceTypeCamera.

これは、私が設定したviewDidLoadのコードです。

そして、これが私がそれをモーダルに提示する方法です..

}

結果... UIImagePickerが表示され始め、ブームが発生します...メモリ警告が表示されます...毎回!興味深いことに、sourceType = UIImagePickerControllerSourceTypePhotoLibrary に切り替えると、すべて正常に動作します。

一体何が欠けているのか、間違っているのでしょうか? 私がやりたいことは、カメラを見せて、写真を撮って保存することだけです。

参考までに - 私は 3GS デバイスでテストしています。

助けてくれる人に感謝します:)

0 投票する
3 に答える
4240 参照

iphone - 参照されたオブジェクトが object-c で割り当て解除されているかどうかを確認するにはどうすればよいですか?

iPhone OS 4.0 にアップグレードした後、アプリケーションを切り替えると、アプリケーションがクラッシュし始めました。アプリケーションがメモリ警告を受け取ると、同じ場所でアプリケーションがクラッシュします。

一部のオブジェクトは、メモリ警告が受信されたときに自動的に割り当て解除されたようで、割り当て解除されたオブジェクトを使用しようとすると、アプリケーションがクラッシュします。

オブジェクトの割り当てが解除されたかどうかをテストして、再割り当てできるようにすることはできますか?

0 投票する
1 に答える
2403 参照

iphone - UIImagePickerControllerはメモリ警告後に却下されません

ビューコントローラの合成プロパティとしてUIImagePickerControllerがあります。

一般的には問題なく動作します(写真の撮影/選択、コールバックなど)。ただし、メモリ警告を受信すると(ビューコントローラでdidReceiveMemoryWarningが呼び出されます)、アプリはそれを適切に処理しているように見えます(viewDidLoadは、無関係なビューなどなしでビューを再設定するために呼び出されます-アプリはクラッシュしません) UIImagePickerControllerを使用すると写真を撮ることができますが、UIImagePickerControllerのビュー(この場合はカメラ)は閉じられません。カメラは、[再撮影]ボタンと[使用]ボタンがグレー表示された状態で画面に表示されたままになります。

viewDidUnloadでself.imagePicker=nilを設定しようとしましたが、これを行わないようにしました(したがって、メモリ警告の後でそれを閉じる必要があるときに、View Controllerはそれを「忘れません」)。

メモリ警告の後に写真が撮影された後、imagePickerは正常にコールバックしますが(didFinishPickingMediaWithInfo)、imagePickerビューは画面に残ります。

任意のヘルプ/アイデアをいただければ幸いです。

0 投票する
1 に答える
2117 参照

iphone - didReceiveMemoryWarning アドバイス (バックグラウンドでマルチタスク アプリケーションが多すぎる)?

助けてください、didReceiveMemoryWarning と正確に何をしなければならないのかわかりません。私のアプリは正常に起動しましたが、実行中のバックグラウンド アプリが多すぎると、メモリ警告を受け取り、終了します。ユーザーにいくつかのバックグラウンド アプリを終了するように求めるアラートを表示したいだけです。

appDelegate があり、そのウィンドウには viewController のビューがあり、2 つのサブビュー (OpenGL ビュー上の XIB) が割り当てられた (複合) 別のビューがあり、これは viewController の cameraOverlayView に設定されています。

警告ですべてのものを 1 つにリリースしようとしましたが、それでも終了しました。各サブビューに didReceiveMemoryWarning を実装する必要がありますか? どうにかして初期化プロセスを「強制終了」できますか?

0 投票する
3 に答える
794 参照

iphone - didReceiveMemoryWarning の奇妙さへの対応

したがって、MKPolygonViews のヒープがオーバーレイされたマップがあります。私がいくつか置くと、少しチャグします。そして、それらをすべてシステムに置くと、オーバーレイを削除することで応答したシステムに didReceiveMemoryWarning が送信されます。

これが発生したときに実際にどれくらいのメモリを使用していたのか疑問に思いました.10MBの実メモリと100MBの仮想メモリだけです. 当時の SMS アプリは 30MB のメモリを使用していましたが、正常に動作していました。私のアプリ以外にも、メールのような他のアプリがあります。SpringBoard は 5MB 上昇するので、特別なことはありません。これは iPhone 4 でも実行されているため、十分なメモリが残っているはずです (私の計算ではまだ約 256MB の空き容量があります)。

オーバーレイを削除した後、メモリ フット プリントは約 1MB しか減りませんが、オーバーレイを元に戻すと 1MB 増えるので、何も異常はありません。

それで、何が起こっているのですか?メモリの警告は、おそらくグラフィック メモリか何かから来ていますか? これらのオーバーレイでのパフォーマンスは、グラフィック プロセッサによって制限されますか? それらをすべてオンにすると、動き回るときに約 60% を使用しますが、パフォーマンスが悪い理由にはなりません。

答えへの方向性は高く評価されます。

編集: Springboards 仮想メモリは、オーバーレイをオンにすると 450MB まで上昇し、512MB に達するとすぐにメモリ警告を送信します。これが問題の原因ですか?VM の合計は常に 512 MB を超えているため、VM にフラッシュ ストレージを使用している必要があるため、メモリ警告は発生しません。

0 投票する
0 に答える
579 参照

uinavigationcontroller - UINavigationController とメモリ不足の警告

次のビュー コントローラー構造を持つ UINavigationController (アプリのメイン NIB ファイルに含まれています) を使用します。

すべてのビュー コントローラーのビューは、ビュー コントローラー クラス (RootVC.xib など) と同じ名前を使用して NIB ファイルから読み込まれます。

問題: LevelOneVC をプッシュし、次に LevelTwoVC をナビゲーション スタックにプッシュし、シミュレートしてメモリ不足の警告を受け取ると、次のことが起こります。 -現在のビュー コントローラー (LevelOneVC) では、[戻る] ボタンが右に飛び出しますが、RootVC のビューは表示されません。

ナビゲーション コントローラーの場合、RootVC が実際に現在のコントローラーになっているように見えますが、その "唯一" のビューを NIB ファイルから再ロードできませんでした。

なぜこれが起こっているのかについてのアイデアはありますか? ありがとう!