アプリが閉じられているか、バックグラウンドで一定時間実行されているときはいつでも、NSUserDefaults のすべてのフィールドに保存されているすべての変数を削除したいと考えています。たとえば、5 分間です。
次のような applicationDidFinishLaunching のアプリ デリゲートに行を追加しようとしました。
if (UIApplicationStateBackground == TRUE) {
NSUserDefaults *profiles = [NSUserDefaults standardUserDefaults];
[profiles setObject:nil forKey:@"name1"];
[profiles synchronize];
}
また、この部分だけを applicationWillTerminate に追加しました。
NSUserDefaults *profiles = [NSUserDefaults standardUserDefaults];
[profiles setObject:nil forKey:@"name1"];
[profiles synchronize];
これはどれも機能していないようで、「バックグラウンドでアプリケーションが 5 分を超えた場合は、NSUserDefaults 変数を削除する」という条件を設定する方法がわかりません。