2011-01-23 79 views
6

我一直在寻找答案,但没有真正找到我在找什么。如何检查是否存在NSUserDefaults

我有一个应用程序,并使用NSUserDefaults的存储“currentGameStatus”和想请教以下问题:

  1. 我如何检查是否存在的.plist NSUserDefaults的的?需要这个来确定我是否需要第一次创建它,如果是这样用默认值填充它

  2. 我在哪里可以在我的Mac(运行模拟器)上找到它?需要删除它来测试第一次运行是否有效?

+1

关于第二个问题,请参阅现有[简单方法查看保存的NSUserDefaults?](http://stackoverflow.com/questions/1676938/easy-way-to-see-saved-nsuserdefaults)问题/回答。 – 2011-01-23 15:57:16

回答

11

我做到这一点是我在NSUserDefaults设置BOOL标志的方式,如果它不存在:

if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstRun"]) { 
    //do initialization stuff here... 

    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstRun"]; 
} 
+0

如果后来,我将第一次运行设置为false?它仍然会进入if语句并回到YES – Kiddo 2013-09-25 15:44:43

1
  1. 已经NSUserDefaults的默认存在。您可以通过[[NSUserDefaults standardUserDefaults] setObject:@"object" forKey:@"key"];

  2. 添加到它,你可以找到的.plist NSUserDefaults的这里alt text

22

你不检查。

您注册了默认值。如果你还没有保存一个值,将使用默认值。

NSDictionary *defaultUserDefaults = [NSDictionary dictionaryWithObjectsAndKeys: 
            [NSNumber numberWithBool:NO], @"Foo", 
            @"Bar", @"Baz", 
            [NSNumber numberWithInteger:12], @"FooBar", 
            nil]; 
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultUserDefaults]; 

,你这样做时候你的应用程序启动。

+0

哇,我不能相信我错过了那个。 +1给你。 – 2011-01-23 16:09:33