2012-04-02 65 views
9

我在NSUserDefaults中設置BOOL值如下。如何測試BOOL是否存在於NSUserDefaults用戶設置中?

[userDefaults setBool:NO forKey:@"theKeyOfMyBOOL"]; 

別的地方在我的代碼,我想如果鍵「theKeyOfMyBOOL」未設置NSUserDefaults的執行一些動作。我如何驗證此密鑰是否已設置?如果我做

[userDefaults boolForKey:@"theKeyOfMyBOOL"]; 

,則返回的值可能是零,其計算結果爲假,我相信,或NO,哪些值錯誤的實際BOOL值。

但是,我需要區分這兩個值(以及當然是)。我如何可靠地做到這一點?

+0

可能重複的[iPhone - 如何檢測是否存在一個關鍵NSUserDefaults standardUserDefaults](http://stackoverflow.com/questions/5397364/iphone-how-to-detect-if-a-key-exists-in -nsuserdefaults-standarduserdefaults) – 2012-04-02 07:23:52

回答

43

[userDefaults boolForKey:@"theKeyOfMyBOOL"];返回BOOL,所以要麼YES要麼NO(不是nil)。

它在內部存儲爲NSNumber。所以,如果你撥打

[userDefaults objectForKey:@"theKeyOfMyBOOL"]; 

,您將獲得一個NSNumber,如果你曾經存儲任何東西,或nil,如果你還沒有。

相關問題