Appleのドキュメントでは、アプリがバックグラウンドモードに入っているときにイメージのような重いデータを解放することを推奨しています。
UIViews
と他のデータから画像を解放するには?
UIViews
からの画像をすべてviewController
から解放する方法は正しいですか?
applicationWillResignActive
メッセージが届いたらデータを復元する方法は?
誰かが良い例やリンクを持っている場合は、表示してください。アプリがバックグラウンドモードに入ったときにグラフィックスを解放します
答えて
アプリデリゲートに2つの方法
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_APP_BACKGROUND object:nil];
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_APP_BACKGROUND object:nil];
}
を追加する方法とBaseViewControllerを行います
- (id)init
{
self = [super init];
if (self) {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillForeground) name:NOTIFICATION_APP_FOREGROUND object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appDidBackground) name:NOTIFICATION_APP_BACKGROUND object:nil];
}
return self;
}
- (void)appDidBackground {
}
- (void)appWillForeground {
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}
サブクラスBaseViewControllerからすべてのビューコントローラ。 appDidBackgroundメソッドでは、不要なデータをappWillForegroundで解放する必要があります。復元するには
1.ある人が '[UIImage imagenamed:@" image.png "]'を使うとメモリからイメージを解放しないと言った人もいます。 2.データを保存して復元する方法。 NSUserDefaultsを使用しますか? coreDataを使用すると簡単です。しかし、nsarrayを保存する方法は、nsuserdefaultsやplistファイルに保存することができます。正しい方法は何ですか? – rowwingman
1. [UIImage imageNamed]はすべての画像をキャッシュします。それはメモリ警告で解放されるかもしれません。 2.たくさんのデータを保存するには、いくつかのデータのためにユーザのデータを保存する必要があります - NSUserDefaultsは良い方法です。いくつかのカスタムオブジェクトで配列(NSUserDefaults内)を保存する場合は、カスタムクラスごとにNSCodingプロトコルを実装する必要があります。 – NeverBe
loadViewで追加されたUIViewを解放する方法。一部の人々は、viewDidUnloadを使う必要があると言っていますが、appはこのメソッドが起動しないバックグラウンドモードに入ります。 – rowwingman
- 1. アプリがバックグラウンドモードのときに曲を開始するには
- 2. アプリがバックグラウンドモードに戻っている間、VOIP iOSアプリがコールを受信できるようにします。
- 3. アプリがバックグラウンドモードまたはキルモードのときにカレンダーイベントを編集する
- 4. Reactネイティブsocket.ioは、アプリがバックグラウンドモードのときに接続を切断します
- 5. DDXMLDocumentの自動解放オブジェクトを作成したときに私のアプリがクラッシュしました
- 6. 解放アプリ
- 7. アプリがバックグラウンドに入ったときにAVPlayerのオーディオストリームを削除します。
- 8. 準備中にメディアプレーヤーを解放するとアプリがフリーズする
- 9. Gio.MemoryInputStreamは、閉じたときにメモリを解放しません。
- 10. アプリがバックグラウンドに入ったときにsockettimeOutexceptionが返される
- 11. 不要になったときにテンソルをメモリから解放するには?
- 12. アンドロイドリソースが解放されたときは?
- 13. 完了前にObj-C自動解放ネットワークリクエストが解放されました
- 14. スワイプ言語がメモリを解放または解放するためにnilを提供できない理由
- 15. Android AudioRecordには参照がなくなったときに解放する方法がありますか?
- 16. コンテナがクリアされたときにインスタンスによって占有されたメモリは解放されますか?
- 17. アプリがバックグラウンドに入ったときのタスクキャンセル
- 18. アプリがバックグラウンドモードのときにiOS 10でカスタムオーディオを再生する方法
- 19. Firebaseメッセージング。バックグラウンドモードまたはシャットダウン時にiOSアプリが通知を受信しない
- 20. iOS [ARC]アプリがメモリを解放していません
- 21. AndroidユーザがログアウトしたときFirebase Cloud Messagingトークンを解放するには?
- 22. ベクトルが有効範囲外になったときにデータが解放されないようにする
- 23. Flexプロジェクトから切断されたときにWebカメラを解放します。
- 24. 以前のmallocを解放しようとしたときにエラーが発生しました
- 25. アプリが実行されていないときのiOSバックグラウンドモード?
- 26. アプリがバックグラウンドになったときにサービスが停止しました
- 27. iPhoneアプリのグラフィックスを入手するための良いサイト
- 28. 解放されたインスタンスにメッセージが送信されました
- 29. 画面がオフのときにWAKELOCKを解放する
- 30. javascript/threejs - キーが解放されたときを検出します
なぜ非常に多くのダウンボックスがありますか? OK、それはあいまいな質問ですが、実際には良いことです。これには良い答えがあることが実際にはうれしいです(初心者には便利です)。 –