問題タブ [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 投票する
3 に答える
1000 参照

ios - UIViewController の didReceiveMemoryWarning で EXC_BAD_ACCESS を取得するにはどうすればよいですか?

UIViewController のサブクラスに didReceiveMemoryWarning を実装しています。私のコードは次のようになります。

私のアプリが実際にメモリ警告を受け取ったとき、アプリは[self cleanUp]回線上で EXC_BAD_ACCESS でクラッシュしました (メソッドは存在します)。これはどのように起こりますか?私が理解しているように、フレームワークはdidReceiveMemoryWarningメソッドを呼び出し、実行を試みる前にクラスを解放しました[self cleanUp]。なぜこれが起こるのでしょうか?どうすればこれを防ぐことができますか?

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

ios - 割り当て解除後にviewDidUnloadが呼び出されましたか?

iPad アプリをデバッグしているときに、メモリが不足しているため、いくつかのビュー コントローラーviewDidUnloadが呼び出されていることがわかりました。しかし、数秒後、それらviewDidLoadが呼び出されます。そして、メモリ不足のため、viewDidUnload、そしてviewDidLoadまた。これは、メモリ不足のためにファイル システムがファイルをスワップし続けるようなものです。

このようなことになっているのでしょうか、それとも何か間違ったことをしましたか?

次に、これを取り除くためにView Controllerを解放したいと思います。ただし、 のviewDidUnload前に呼び出さdeallocれ、割り当てが解除されたビュー コントローラーに送信されたセレクターが原因でクラッシュすることがあります。

助けてくれてありがとう。

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

memory-management - 警告: メモリ警告を受け取りました。レベル=1 & 2

コンソールで上記の警告を表示してクラッシュするアプリケーションを作成しています。

2 つのスプライトがあります。

他の方法では、アニメーションを使用して AlphaImage を初期化しています。

zwoptex を使用して、plist とテクスチャ アトラスを作成しました。
電車が行き来すると、アニメーションの plist とテクスチャ アトラスが変化します。しかし、4 ~ 5 回実行すると、アプリケーションがクラッシュします。また、新しいアニメーションが AlphaImage に来る前に、すべてのフレームとテクスチャを解放しました。これを使用しました。

アプリケーションに hd 画像を使用しています。多くのドキュメントを調べましたが、次のように提案されています。

ただし、コンソールでは、これらの行を使用したフレームの削除については何も表示されません。私が間違っていることはありますか?

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

iphone - 小さなアプリケーションは、開始直後に「didReceiveMemoryWarning」を受け取ります

多くの場合、アプリケーションの前に多くのアプリケーションが開かれると、「didReceiveMemoryWarning」が表示され、しばらくすると iOS は通常アプリケーションを閉じます。これは実際に顕著な問題になっています。

ここ数日間、「didReceiveMemoryWarning」について非常に多くのことを考えてきました。ここに投稿を含めます。残念ながら解決策は見つかりませんでした。

この警告と bla-bla-bla でメモリを解放する必要があることはわかっています... 問題は、アプリケーションの起動直後に解放するものが何もないことです。AdMob 4.0.2 バナーを含む 1 つの UIViewControlled がメモリ内にあり、アプリケーション データを提供する 1 つの独自のコンテナーがあります。これは NSMuttableArray のいくつかのレコードです。開始直後、私のアプリケーションは 1.3 Mb かかります。Instruments によると、この初期状態では私のアプリケーションは動作しておらず、間違いなくメモリ リークは発生していません。

なにが問題ですか?一部の負荷の高いゲームは問題なく開始できることがわかりますが、同時に、この場合のアプリケーションは「didReceiveMemoryWarning」を取得して閉じられます。この状況で通常の方法で機能する方法はありますか。いくつかのトリックはありますか?

ご提案いただきありがとうございます。

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

ios - ビューコントローラーのメモリ警告が割り当て解除されましたか?

私は、メインのものからサブクラス化されたUIViewcontroller2つのメイン(vcMain)を持っています。UIViewControllersサブクラス化された両方UIViewcontrollers(vcSub1/vcSub2) は、単に画像といくつかのコントロールを表示するだけです。vcSub1 と vcSub2 が に表示されますUITabBarController。私はこのように実装didReceiveMemoryWarningしました:

vcMain:

vcSub1:

vcSub2:

初めてメモリ警告をシミュレートすると、すべてが正常に機能しているようです。

私はこれを問題なく何度でも行うことができます。ただし、タブを切り替えて(したがってビューをリロードして)メモリ警告を再度シミュレートすると、次のようになります。

Aninfo malloc-history 0x614de80は、インスタンスが vcSub1 ビューコントローラーであることを示しています。

vcSub1 ビューコントローラーの割り当てが解除された理由方法を教えてください。

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

iphone - メモリ クラッシュの前に didReceiveMemoryWarning が呼び出されない

アプリを初めてロードするときにいくつかの大きな csv ファイルをロードしていますが、これはシミュレーターでは正常に動作しますが、電話で実行すると、「プログラムがシグナル "0" を受信しました」というメッセージで約 30% クラッシュします。メモリクラッシュ。ただし、didReceiveMemoryWarning イベントにブレークポイントを設定すると、呼び出されないようです。

何か不足していますか、それともイベントが呼び出されずにプログラムが正常にシャットダウンしますか?

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

iphone - didReceiveMemoryWarningアプリがクラッシュする

didReceiveMemoryWarningメソッドを作成しようとしています。ViewDidUnloadのように、単にIBOutletsをnilに設定する必要がありますか?

iPhone Simulatorでメモリ警告をシミュレートしていますが、2回目に実行すると、アプリがクラッシュします。

どんな助けや指示も大歓迎です。ありがとう

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

iphone - didreceivememorywarningの適切な低メモリ警告メッセージ!

アプリでメモリ不足の警告が頻繁に発生しました。didreceivememorywarninigメソッドをオーバーライドし、不要なカスタムオブジェクトを解放するために最善を尽くしました。

通常、複数のアプリケーションがバックグラウンドで実行されている場合(6〜7個のアプリ)にメモリ警告が表示されるため、アプリをスムーズに実行するのに役立つ可能性のあるバックグラウンドアプリを閉じるようにユーザーに通知したいと思います。

//警告メッセージ:

//警告:メモリが不足しています。他のアプリケーションを閉じると役立つ場合があります。

アップルはこの動作を受け入れますか???? ありがとう。

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

ios - アプリがバックグラウンドにあるときにdidReceiveMemoryWarningを取得しない

didReceiveMemoryWarningiPadシミュレーターでアプリケーションがバックグラウンド状態にあるときに、ビューコントローラーがメソッドを呼び出さないことに気づきました。具体的にapplicationDidEnterBackgroundは、ログにへの呼び出しが表示され、[メモリ警告のシミュレーション]ボタンを押すと、呼び出しがまったくないことに気付きdidReceiveMemoryWarningます。

ただし、アプリケーションをフォアグラウンドに戻すと、didReceiveMemoryWarningキューに入れられているかのように、突然呼び出しが発生します。

ここで私が混乱しているのは、私のアプリケーションが本当にバックグラウンドにあるのか、それとも完全に中断されているのかということです。シミュレーターで見分ける方法はありますか?

また、まだ一時停止されておらず、実際にバックグラウンドにある場合は、処理できないのはばかげていると思いますdidReceiveMemoryWarning。これは、フォアグラウンドアプリケーションのみがメモリ警告を処理してスペースを解放できることを意味します。これは、フォアグラウンドアプリが、実行中の数十のアプリの1つにすぎないことを考えると、もちろん奇妙なことです。すべてメモリを解放できます。

とにかく、主な質問は次のとおりです。なぜdidReceiveMemoryWarningバックグラウンド状態にならないのですか?また、私は本当に停止されていますか?そして、私はどのように言うのですか?