Альтернатива NSUserDefaults для сохранения Bool? - PullRequest
0 голосов
/ 16 сентября 2018

В настоящее время я использую 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 для такой настройки?

1 Ответ

0 голосов
/ 17 сентября 2018

Я думаю, что при изменении данных 100 NSUserDefaults отправка сообщения синхронизации ,, но вы выходите из программы, и данные не сохраняются.

Так что вам нужно вызвать synchronize вручную, чтобы сохранить данные.

...