0

我在 NSUserDefaults 中保存一个 bool 值,如下所示:

[[NSUserDefaults standardUserDefaults]setBool:NO forKey:@"password"];

然后我像这样同步默认值:

[[NSUserDefaults standardUserDefaults]synchronize];

但是当我的应用程序进入后台然后进入前台时,我的 bool 将值更改为YES

为什么会这样?我将我的 bool 设置为YES仅在程序中的一个位置,当我的应用程序离开/进入前台时,它无法管理。

谢谢!

4

3 回答 3

2

只需执行一个简单的测试,您将 bool 保存为

[[NSUserDefaults standardUserDefaults]setBool:NO forKey:@"password"];
[[NSUserDefaults standardUserDefaults]synchronize];
NSLog(@"%d",[[NSUserDefaults standardUserDefaults] boolForKey:@"password"]);

看看有什么价值。。

于 2012-06-07T10:10:11.287 回答
1

您的检索代码应如下所示。

if(![[NSUserDefaults standardUserDefaults] boolForKey:@"password"]) {
    //False
} else {
    //True
}
于 2012-06-07T10:09:26.600 回答
0

检索布尔值时,请确保您拥有正确的键字符串(@"password"在您的情况下)。它区分大小写。

[[NSUserDefaults standardUserDefaults] boolForKey:@"password"];

在你的整个项目中对这个键进行文本搜索,你会发现有问题的代码。

于 2012-06-07T10:05:45.017 回答