当前,我正在使用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上看到其他人也遇到类似的here和here。
由于它看起来是随机的,因此很难复制,但是,尽管一段时间以来没有启动Application,但它的确出现的频率更高。
对于这种设置,有什么替代方法可以存储BOOL
值?
答案 0 :(得分:0)
我认为,当您更改数据时,NSUserDefaults
发送了一条同步消息,但是您退出了程序,并且数据没有保存。
因此,您需要手动调用synchronize
来保存数据。