アプリケーションのローカル ドキュメントにいくつかの値をロードしました。アプリケーションが実行されているとき、アプリはたとえば 50 レコードを書き込みます。
ここで、ユーザーがアプリを強制終了して再度起動すると、ファイルは新しいレコード 50 + 既存の 50 のみを書き込みます。
この問題をどのように処理しますか?
アプリケーションが完全に強制終了された場合、追加のデータを書き出す機会はありません。コードはもう実行されません。
アプリがバックグラウンドにあり、OS がメモリを解放したいときに発生する強制終了について話している場合は、アプリケーション デリゲートにコールバックを実装する必要があります (通知も使用できますが、シンプルにしましょう)。 OS はアプリをバックグラウンドに配置します。その時点で、データをディスクに書き込みます。
@implementaton MyAppDelegate
- (void)applicationDidEnterBackground: (UIApplication *)application {
[myDatabase commit];
[myFiles save];
[myWhatever doWhatever];
// etc.
}
@end