在我過去的項目中,我總是創建一個NSObject-HelperClass,它與selfmade-Plist進行交互。現在我聽說我可以使用[NSUserDefaults standardUserDefaults]並且還有我的字典。vs自己的Plist
所以我爲什麼要使用UserDefaults的不是我自己的NSObject這按摩的plist?
歡呼內
在我過去的項目中,我總是創建一個NSObject-HelperClass,它與selfmade-Plist進行交互。現在我聽說我可以使用[NSUserDefaults standardUserDefaults]並且還有我的字典。vs自己的Plist
所以我爲什麼要使用UserDefaults的不是我自己的NSObject這按摩的plist?
歡呼內
NSUserDefaults是一種方便的方式來存儲一些首選項和應用程序的當前狀態(例如:「記住我」複選框設置爲是或否)。你只能用這種數據。
您也可以使用自定義PList來存儲這種信息,但它可能是矯枉過正。
關鍵的問題是在數據需要多大存儲?
小數據集=> NSUserDefaults的
大型數據集=>的plist
你也應該考慮使用CoreData,如果你有嚴重的存儲需求。
如果我沒有記錯,蘋果建議主要使用的NSUserDefaults的用戶默認。也許我在其中一個來自WWDC 2010的視頻中聽到了它。
NSUserDefaults最大的問題是它們是「半不可變的」。即使只更改該集合中包含的一個對象,也必須用setObjectForKey
替換整個集合。
除此之外,我認爲它是好的,如果你確定它使用NSUserDefaults的。
NSUserDefaults有許多可能有用的屬性;例如它會自動合併更改以避免太頻繁地寫入磁盤。您也可以使用Terminal中的'defaults'命令來操作它,這對測試來說非常方便。最後,它是線程安全的,難以正確執行。
這意味着字符串,布爾和數字放在NSUSerDefaults – 2011-01-20 15:51:10