バックグラウンド トラッキングを使用する IOS アプリケーションを開発しています。バックグラウンドでのメモリ使用量を最小限に抑えるために、再構築できるアプリ内のすべてのもの (ロケーション マネージャーを含むクラスを除くすべて) を完全に削除したいと考えています。
私のビューコントローラーのそれぞれで、次のように dealloc メソッドを実装しました。
NSLog(@"Destroyed: %@", self);
ここで、アプリのデリゲート メソッド「applicationdidenterbackground」で次のように設定しました。
[self.window setRootViewController:nil];
これはビュー コントローラーへの唯一の参照であるため、正常に動作するはずですが、アプリケーションを実行してホーム ボタンを押しても何も起こりません。ビューが破棄されたというメッセージを受け取るのは、アプリケーションをフォアグラウンドに戻すまでではありません。また、ログの遅延だけではないことも確認しました。計測器を使用して、アプリケーションがフォアグラウンドに戻るまでメモリがまだ割り当てられていることを確認できます。Applicationwillresignactive と同じことです。
この動作は正常ですか?もしそうなら、アプリケーションがバックグラウンドに入ったときに不要なオブジェクトを破棄する正しい方法は何ですか? ありがとう
スティーブ