我尝试在NSUserDefaults中存储一些设置,但似乎应用程序不会存储setBool值。
以下代码可以正常工作:
``` [[NSUserDefaults standardUserDefaults] setValue: @"hello" forKey: @"test"]; [[NSUserDefaults standardUserDefaults] synchronize]; ```
当我终止应用并重新启动时,值已保存。然而,当我执行以下代码时:
``` [[NSUserDefaults standardUserDefaults] setBool: YES forKey: @"test"]; [[NSUserDefaults standardUserDefaults] synchronize]; ```
在关闭应用程序并重新启动后,它将无法保存。
我应该提交错误报告吗?还是我漏掉了什么?
谢谢!
编辑:
我发现自己做错了。在AppDelegate中,我想检查boolForKey是否被设置,如果没有,我会这样做:
以下代码可以正常工作:
``` [[NSUserDefaults standardUserDefaults] setValue: @"hello" forKey: @"test"]; [[NSUserDefaults standardUserDefaults] synchronize]; ```
当我终止应用并重新启动时,值已保存。然而,当我执行以下代码时:
``` [[NSUserDefaults standardUserDefaults] setBool: YES forKey: @"test"]; [[NSUserDefaults standardUserDefaults] synchronize]; ```
在关闭应用程序并重新启动后,它将无法保存。
我应该提交错误报告吗?还是我漏掉了什么?
谢谢!
编辑:
我发现自己做错了。在AppDelegate中,我想检查boolForKey是否被设置,如果没有,我会这样做:
if (![defaults boolForKey: @"test123"])
[defaults setBool: YES forKey: @"test123"];
然而,当涉及到boolWithKey时,“!”仅仅检查bool变量是否为YES或NO,而不是nil。