IOS - 设置standardUserDefaults在运行模拟器不保存
我与模拟器使用的数据,并在应用程序启动检查它是否被打开了我第一次做这样的事情:IOS - 设置standardUserDefaults在运行模拟器不保存
然后检查是否该键/值是空的,所以,这个代码执行一次:
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if([standardUserDefaults objectForKey:@"first_time_cookie"] == nil)
{
[standardUserDefaults setBool:YES forKey:@"first_time_cookie"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
但我每次运行程序时,它再次执行。任何想法在这里出了什么问题?
bool不是一个对象。这应该工作
if([standardUserDefaults boolForKey:@"first_time_cookie"] == NO)
{
[standardUserDefaults setBool:YES forKey:@"first_time_cookie"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
只是猜测:standardUserDefaults
是零?
不是零...我更新了我的问题,以显示实例。 – GeekedOut 2012-07-26 18:59:15
代码中没有其他错误。其他的东西在你的设置中被破坏了。 – 2012-07-26 22:14:29
你可以做不同!
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];
}
尝试使用
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"first_time_cookie"] == false)
,让我知道,如果它的工作原理,
卖力的
它是“否”而不是“假”。最好在'!'而不是'== NO'的条件下。 – 2012-07-26 22:09:35
谢谢!现在尝试。 – GeekedOut 2012-07-26 18:59:57
,但仍然不能很好地工作。 – GeekedOut 2012-07-26 19:03:51
我刚刚编译了剪切,它在iOS 6模拟器上运行良好。 – zeiteisen 2012-07-26 19:09:05