Я хочу исключить все переменные, сохраненные во всех полях NSUserDefault, всякий раз, когда приложение закрыто или работает в фоновом режиме в течение определенного времени - скажем, 5 минут.Настройка iPhone NSUserDefaults для nil, когда приложение закрыто или в фоновом режиме
Я попытался добавить строку в приложение делегата 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» - Любая помощь?
applicationDidFinishLaunching вызывается при запуске, и он никогда не будет запускаться AFAIK. – mk12
Правильно. Однако Apple заявляет в своей документации о applicationDidFinishLaunchingWithOptions: «Примечание. Настоятельно рекомендуется использовать этот метод для инициализации вашего приложения, а не метода applicationDidFinishLaunching :.» – GorillaPatch