當我建立我的應用程序默認的喜好,我做了以下內容:爲什麼使用registerDefaults:而不是setValue:forKey:?
1)閱讀Root.plist
從內部Settings.bundle
到字典中。
2)我測試,如果偏好設置,如果沒有我通過[NSUserDefaults standardUserDefaults] registerDefaults:]
問題註冊我的默認詞典,與registerDefaults:
註冊默認不要去持久存儲,所以如果用戶從未更改他們的偏好我正在閱讀我的默認偏好,並在每次應用啓動時用NSUserDefaults
註冊。
而不是使用registerDefaults:
我可以使用setValue:forKey:
並將我的默認設置轉到永久存儲,繞過每個啓動時需要構建&註冊字典。但是,Apple的documentation和sample code都指向registerDefaults:
。
所以我想弄清楚什麼時候和爲什麼我應該使用registerDefaults:
以及何時/爲什麼我應該使用setValue:forKey:
來代替?
我發現這個相關的問題:[[NSUserDefaults registerDefaults:]?](http://stackoverflow.com/questions/4931167/what-is-the-use-of-nsuserdefaults-registerdefaults)雖然答案解釋了這些差異,但他們仍然沒有真正說出爲什麼你應該使用一個。 (答案似乎忽略了我關於持久性的問題。) – gabrielk 2012-02-06 20:05:18