0

ゲームの状態、ハイスコア、実績などのデータを保存するアプリ(ゲーム)があります。現在、アプリの代表者はでこれを行っていapplicationWillTerminate:ます。iPhone 4で少し遊んだ後は、アプリケーションが終了することはほとんどないようです。ユーザーが邪魔にならないようにアプリケーションを終了したり、電話を再起動したりしない限り、アプリケーションはバックグラウンドで永久に実行されます。

だから私の質問は、データを保存するための別の場所を見つける必要がありますか?もしそうなら、いつですか?

4

4 に答える 4

5

デリゲートメソッドの呼び出しに費やす時間を最小限に抑えるには、ゲーム中に保存するのが理にかなっている場所(レベルの完了、チェックポイントなど)を見つける必要があります。また、アプリケーションデリゲートに新しいデリゲートメソッドを追加することもできます。このメソッドは、アプリケーションがバックグラウンドに移行したときに呼び出され、以前にで行った可能性のある作業の一部を複製できますapplicationWillTerminate:。実装する新しいデリゲートメソッドはです-applicationDidEnterBackground:

また、ユーザーがとしてアプリに切り替えたという通知を受け取りますapplicationWillEnterForeground:

于 2010-06-23T05:49:08.627 に答える
2

ビューでそうすることができますdiddisappearデリゲートメソッド

-(void)viewDidDisappear:(BOOL)animated

{{

//保存するためのコード

}

于 2010-06-23T05:41:29.067 に答える
2

applicationDidEnterBackgroundに保存する必要があります。保存コードは必ず– beginBackgroundTaskWithExpirationHandler:とendBackgroundTaskでラップしてください。これがないと、実行が一時停止するまでに1秒未満(またはそのようなもの)しかありません。

于 2010-06-23T05:47:42.637 に答える
2

使用できるアプリデリゲートメソッドは2つあります

applicationDidResignActive: //pausing the app, used when a msg comes up. if multitasking this wont help

applicationDidEnterBackground: // called in iOS 4 for when the app is in the background

を使用してフォアグラウンドにロードされるタイミングを確認できます

applicationWillEnterForeground:

詳細については、リファレンスを確認してください

于 2010-06-23T05:51:30.090 に答える