2011-09-01 154 views
0

有具有值NSUserDefault:是否可以覆蓋NSUserDefault?

[[NSUserDefaults standardUserDefaults] setObject:@"1" forKey:@"aValue"];

可以通過它的另一值覆蓋?正如:

[[NSUserDefaults standardUserDefaults] setObject:@"2" forKey:@"aValue"];

如果有可能是什麼利弊?

回答

2

是的,該值將被覆蓋。 NSUserDefaults用於在應用程序關閉後存儲信息。

當你想要(例如在遊戲中)增加用戶完成的關卡數量時,通常需要這樣做。

我看到的唯一缺點是,如果您忘記了某個鍵的名稱,那麼當您不打算這樣做時,您可能會意外地將已經存在的值寫入其中。

+0

我已經開始在我的類中使用默認值創建常量字符串。然後字符串名稱將填入自動完成。它使事情變得更容易記住。 – Suz

+1

我也是這樣做的。我將所有的鍵定義爲'#define KEYS_SOME_VALUE @「keyvalue」',然後當我輸入'KEYS'時,我得到了所有可能鍵的自動完成列表 –

相關問題