2011-01-20 38 views
1

在我過去的項目中,我總是創建一個NSObject-HelperClass,它與selfmade-Plist進行交互。現在我聽說我可以使用[NSUserDefaults standardUserDefaults]並且還有我的字典。vs自己的Plist

所以我爲什麼要使用UserDefaults的不是我自己的NSObject這按摩的plist?

歡呼內

回答

5

NSUserDefaults是一種方便的方式來存儲一些首選項和應用程序的當前狀態(例如:「記住我」複選框設置爲是或否)。你只能用這種數據。

您也可以使用自定義PList來存儲這種信息,但它可能是矯枉過正。

關鍵的問題是在數據需要多大存儲?

小數據集=> NSUserDefaults的

大型數據集=>的plist

你也應該考慮使用CoreData,如果你有嚴重的存儲需求。

+0

這意味着字符串,布爾和數字放在NSUSerDefaults – 2011-01-20 15:51:10

1

如果我沒有記錯,蘋果建議主要使用的NSUserDefaults的用戶默認。也許我在其中一個來自WWDC 2010的視頻中聽到了它。

NSUserDefaults最大的問題是它們是「半不可變的」。即使只更改該集合中包含的一個對象,也必須用setObjectForKey替換整個集合。

除此之外,我認爲它是好的,如果你確定它使用NSUserDefaults的。

0

NSUserDefaults有許多可能有用的屬性;例如它會自動合併更改以避免太頻繁地寫入磁盤。您也可以使用Terminal中的'defaults'命令來操作它,這對測試來說非常方便。最後,它是線程安全的,難以正確執行。