2012-06-07 46 views
0

我在NSUserDefaults的保存一个布尔值,像这样:NSUserDefaults的值更改

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

然后我同步,这样的默认值:

[[NSUserDefaults standardUserDefaults]synchronize]; 

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

为什么会发生这种情况?我只在程序中的一个地方将我的布尔设置为YES,当我的应用程序离开/进入前景时,该程序无法管理。

谢谢!

+3

什么是您使用的是检索值的代码? – skram

+0

我使用'boolForKey' – SmartTree

+0

你什么时候设置的值,在应用程序的哪一点?当它是背景时? – skram

回答

2

只是执行你在哪里保存布尔作为

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

看看有什么值的简单测试..

0

当您检索布尔值时,请确保您拥有正确的密钥字符串(在您的案例中为@"password")。它是区分大小写的。

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

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

1

您的检索代码应该看起来像这样。

if(![[NSUserDefaults standardUserDefaults] boolForKey:@"password"]) { 
    //False 
} else { 
      //True 
} 
+2

@Krishnabhadra感谢您的编辑。用我的手机:) – skram

+0

快乐!!!!!!!! – Krishnabhadra