ios - 在运行模拟器时设置standardUserDefaults不会保存数据

时间:2012-07-26 18:50:10

标签: ios ios5

我正在使用模拟器,当应用程序开始检查它是​​否第一次打开时,我正在做这样的事情:

然后检查该键/值是否为空,以便此代码只执行一次:

 NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];

    if([standardUserDefaults objectForKey:@"first_time_cookie"] == nil)
    {
        [standardUserDefaults setBool:YES forKey:@"first_time_cookie"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

但每次运行程序时,它都会再次执行。知道这里出了什么问题吗?

4 个答案:

答案 0 :(得分:2)

只是一个猜测:standardUserDefaults是零?

答案 1 :(得分:1)

你可以做不同的事情!

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], @"first_time_cookie"];
[defaults registerDefaults:dict];

if ([defaults boolForKey:@"first_time_cookie"] == NO){
   [defaults setBool:YES forKey:@"first_time_cookie"];
   [defaults synchronize];
}

答案 2 :(得分:0)

布尔不是一个对象。这应该工作

if([standardUserDefaults boolForKey:@"first_time_cookie"] == NO)
{
    [standardUserDefaults setBool:YES forKey:@"first_time_cookie"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

答案 3 :(得分:0)

尝试使用

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"first_time_cookie"] == false)

让我知道它是否有效,

狂热的