問題タブ [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.
ios - IOS - メモリ警告の後、モーダル UIView がデリゲートを失っている
iPhone アプリをほぼ完成させ、XCode 4 と IOS シミュレーターを使用してテストを行っています。私のアプリには、モーダルを開く一連のビューがあります。
ビュー 1 --> モーダル --> ビュー 2 --> モーダル --> ビュー 3 --> モーダル --> ビュー 4
ビュー 2 はビュー 3 のデリゲートであり、ビュー 3 はビュー 4 のデリゲートです。
View4 が表示されていて、「メモリ警告をシミュレート」しようとすると、View3 に戻ることができますが、View3 はそのデリゲート ( [self.delegate NotifySave:self]
) を呼び出すことができません。
デリゲートを呼び出す前にブレークポイントを配置すると、「0xsomething」ではなく「0x0」が表示されます。「ホーム」ボタンでアプリケーションを「終了」しても、アプリを再度実行すると、(もちろん) 問題は解決しません。
質問は次のとおりです。
- 他の誰かが同じ問題を経験しましたか?
- この問題はシミュレータだけに存在するのでしょうか? (実際の iPhone で警告を再現することはできません)
- 誰か提案がありましたか?
- View2 が解放されないようにすることはできますか? (これが問題の原因だと思います)
助けてくれてありがとう。
ios5 - ViewController のコントロールが、画面外でのメモリ警告後に状態を失う
委任が正常に機能しているように見えることを除いて、状況はthis my other questionで説明されている状況と非常に似ています。私は自分のコードについてもう少し詳しく説明しています。関係のない/些細な部分を取り除いているだけです。
ReportScreen.h
ReportScreen.m
MapScreen.h
MapScreen.m
問題は次のとおりです。
- ReportScreen は MapScreen をプッシュします (実際にはセグエを実行します)。
- UITextView にデータがある場合、または ReportScreen のボタンに状態を設定し、MapScreen がプッシュされている間にメモリ警告が表示された場合、ReportScreen に戻ると、これらのすべてのフィールドにそれらの設定が表示されません。どうやら textView.text はまだ設定されているようで、ボタンの状態も同様で、表示されていません。
質問: なぜですか?
objective-c - スカラー ivar & メモリ警告または viewUnLoad
スカラー ivar を持つ UIViewController があります。コントローラがメモリ警告を受け取ったときに何が起こるか知りたいです。
testBool は変更なしで保持されますか、それともリセットされますか?
class.h
ios - 利用可能な RAM または iOS メモリの警告レベルに基づく適応型画像キャッシュ
ユーザーがimageWithContentsOfFileを待たないように、大きな画像をキャッシュするアプリがあります。原則として、前後の画像をキャッシュします。
1) iPad で利用可能なメモリに基づいて、このキャッシングを適応させることはできますか? はいの場合、しきい値は何ですか? 以下は、使用可能なメモリを計算する関数です
2) (非公開/文書化されていない API を除いて) メモリ レベルの警告を知る方法がないことはわかっています。しかし、確認のために、何らかの方法でそれらを使用できますか.
3)現在、3つの画面(6つの画像がある)をキャッシュすることを考えています。ViewControllerがメモリ警告を受け取った場合、表示されている画面を除くすべての画面をアンロードし、キャッシュする画面の数を2(4つの画像)にリセットします。しかし、キャッシュが可能な量よりも少ないか、状況によっては4つをロードしてもクラッシュするため、最適化されていません。
iphone - LLDBはオブジェクトをそのアドレスで識別します
以前の開発者から復元した iPad アプリケーションに取り組んでいます。次のメッセージが表示されることがあります。
そしてアプリはで止まった
アプリケーションがメモリ警告を受け取った後、アプリケーションが既に割り当て解除されたクラスから関数を実行しようとしていることがわかりました。問題は、私が言ったように、アプリケーションを開発していないため、NSZombies
有効にしても問題が発生した場所を見つけることができなかったことです。
オブジェクトメモリアドレス(私の場合は0x2b1c70)でLLDB(または他の方法)を使用して、問題が発生した場所を取得する方法はありますか?
objective-c - ARC プロジェクトでは、クラス (A) は非 ARC ファイルに含まれる別のクラス (B) から継承します
プロジェクトで A を使用し、シミュレーターでメモリ警告をシミュレートすると、[super didReceiveMemoryWarning] でアプリがクラッシュすることがよくあります。ARC プロジェクトで ARC 以外のファイルからクラスを継承する場合、注意すべきことはありますか? 任意の提案をいただければ幸いです。
objective-c - ARCでのdidRecieveMemoryWarning(iOS / Obj-C)
ARC(自動参照カウント)を使用するiOS(Obj-C)プロジェクトがあります。Appleのドキュメントと純粋な実験によると、次のようなステートメントを含めることはできません。
これは、以前は、割り当てまたは保持された後にアイテムを解放する方法でした。今、私はあなたがIBオブジェクトがどのように作成されるかを管理しなければならないことを知っています
ヘッダーファイルの一部。
私はすべてのIBアイテムに対して、上記のステートメントをそのまま使用しています(非アトミックおよび保持(または強力-とにかく違いは何ですか、それらはどのように使用されますか?))。iOSデバイスでテストすると、 didRecieveMemoryWarningイベントが発生したときにのみ表示されるUIAlertView(デバッグ目的で作成したもの)がランダムに取得されます。
私のベータテスターの中には、アプリを終了するまで、これらのビューをノンストップで攻撃している人もいます。
私の質問は、オブジェクトを解放できないので、didRecieveMemoryWarningイベントに何を入れるのですか?そこに置くものがない場合、@ property関数を使用してオブジェクトを作成する方法が原因でこれらのエラーが発生していますか?
iphone - Model ViewControllers でのメモリ警告問題のシミュレート
タブバーアプリケーションがあります。各タブには、ユーザーが 1 つのビューから別のビューに遷移できるようにするナビゲーション コントローラーが含まれています。各ビューはビュー コントローラーによって処理され、各ビュー コントローラー クラスには -didReceiveMemoryWarning メソッドがあります。
問題: iPhone シミュレーターの [Hardware] > [Simulate Memory Warning] オプションを任意のモデル ビューコントローラーで使用すると、その後、そのコントローラーを閉じたい場合に -
次に、そのモデル ビュー コントローラーを追加したコントローラーに対して viewDidLoad メソッドが呼び出されず、そこでアプリがクラッシュします。どんな考えでも、私が間違っていること。
ios - didReceiveMemoryWarning と dealloc の関係は?
dealloc
メモリ不足のときに呼び出されますか? true の場合、前didReceiveMemoryWarning
または後に呼び出されますか? また、View Controller が解放されているとき、それは確実dealloc
に呼び出されますか?
ios - viewDidDisappear で [super didReceiveMemoryWarning] を呼び出すことはできますか?
'私は ARC と UINavigationController を使用して、10 個のビューコントローラーを切り替えています。すべてがうまく機能しますが、しばらくするdidReceiveMemoryWarning
と (すべてのビュー コントローラーが開いているため) が呼び出され、[super didreceivememorywarning]
スーパーではないすべてのビュー コントローラーが消去されます。それは私にとって完璧です。唯一の問題は、アプリが呼び出されたときに 1 秒間ラグが発生することです。
[super didreceivememorywarning]
すべてのView Controllerを呼び出すことはできますviewDidDisappear
か? テストすると完全に機能しますが、それは許可されていますか/愚かですか? そうでない場合、スーパーではないすべてのView Controllerを解放するにはどうすればよいですか?