2011-01-23 117 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