В настоящее время я использую NSUserDefaults
, чтобы сохранить и загрузить значение bool, например:
-(void)saveSettingOn{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:hapticKey];
}
-(void)saveSettingOff{
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:hapticKey];
}
-(void)loadSetting{
isHapticOn = [[NSUserDefaults standardUserDefaults] boolForKey:hapticKey];
}
При запуске я загружаю настройку в AppDelegate
примерно так:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self loadSetting];
return YES;
}
Иногда, когда я запускаю приложение, hapticKey
имеет значение nil
или NO
, даже если оно должно быть YES
(даже после принудительного выхода).
Я видел на Stackoverflow, что другие испытывают подобные здесь и здесь .
Трудно воспроизвести, потому что оно выглядит случайным, однако, по-видимому, оно происходит чаще, если приложение не было запущено некоторое время, хотя это может совпадать.
Какие есть альтернативы для сохранения значения BOOL
для такой настройки?