我正在使用模拟器,当应用程序开始检查它是否第一次打开时,我正在做这样的事情:
然后检查该键/值是否为空,以便此代码只执行一次:
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if([standardUserDefaults objectForKey:@"first_time_cookie"] == nil)
{
[standardUserDefaults setBool:YES forKey:@"first_time_cookie"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
但每次运行程序时,它都会再次执行。知道这里出了什么问题吗?
答案 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)
让我知道它是否有效,
狂热的