目前,我正在開發一個功能嚴重依賴於檢索到的JSON數據的應用程序。我打算將大部分數據保存到核心數據中。但是,我不確定是否還必須在覈心數據中保存所有與用戶有關的內容(設置,收藏夾,推特,Facebook等),還是應該使用NSUserDefaults?什麼是優點和缺點?我應該使用核心數據來存儲一些用戶首選項還是將其保存在NSUserDefaults中?
回答
你可以參考蘋果自己的指南:Implementing Application Preferences
,只要你想,你可以存儲在任何方式向用戶設置:NSUserDefaults的和核心數據之間的選擇就是API,其中前者實際上是專門用來處理之間用戶偏好。
NSUserDefaults和「內置設置組件」實際上是一樣的。使用設置應用程序仍然會將首選項保存在您使用該API訪問應用程序的NSUserDefaults中。
您可能不想使用內置設置應用程序的原因是:用戶更改這些設置很麻煩。如果用戶可能需要頻繁更改設置,則可能需要在應用內部執行此操作(例如,開啓/關閉音樂,更改播放器名稱)。此外,由於您可以完全控制自己的應用程序,因此您可以擁有比Apple在Settings.app中提供的GUI更靈活的GUI。至於使用Core Data或NSUserDefaults ...我會說隨着NSUserDefaults去吧實施起來要容易得多,而且是爲了實現這一目標而設計的,因爲實施核心數據需要付出很多努力。
對於任何人發現2017+線程,上面鏈接的頁面不再存在。我相信本指南現在稱爲[首選項和設置編程指南](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/UserDefaults/Introduction/Introduction.html),是更新後的版本。 – 2017-07-31 01:59:14
- 1. 我應該使用NSUserDefaults還是plist來存儲數據?
- 2. 我應該將我的圖像保存在覈心數據中,還是應該使用SDWebImage
- 3. 我應該如何存儲核心數據「選定」項目?
- 4. 我應該使用mysql還是ssdb來存儲like/vote數據?
- 5. 在NSUserDefaults中保存用戶選項
- 6. 我應該使用什麼數據類型在覈心數據中存儲GUID?
- 7. 我應該在數據庫中存儲Type還是應該將其存儲在枚舉中?
- 8. 將核心數據實體保存在NSUserDefaults中
- 9. 我是否可以將Realm用於所有數據存儲,還是應該使用NSUserDefaults來存儲用戶名/密碼?
- 10. 在Ruby中存儲用戶首選項
- 11. 雲核心數據存儲多用戶
- 12. 我應該使用SQL還是核心數據?
- 13. iOS 5數據存儲:核心數據,SQL或其他選項?
- 14. 我應該使用SqlBulkCopy還是存儲過程導入數據
- 15. 我應該使用文件還是數據庫表來存儲參數?
- 16. 將核心數據存儲在NSOperation中
- 17. 使用NSUserDefaults保存數據
- 18. 使用共享首選項存儲用戶數據可靠嗎?
- 19. 我應該在數據庫還是json文件中保存用戶通知?
- 20. 我應該使用phonegap本地存儲來存儲複選框字段選項
- 21. 我應該使用道具還是狀態來存儲TreeView數據?
- 22. 我應該將翻譯存儲在覈心數據中還是作爲本地化字符串?
- 23. 使用核心數據存儲對象
- 24. swift ios應該使用核心數據還是數組/結構
- 25. 使用NSMutableArray保存到核心數據
- 26. 保存在覈心數據
- 27. 將數據存儲在共享首選項中不起作用
- 28. Android試圖使用首選項來保存數據
- 29. 核心數據策略在內存緩存中使用,還是根本沒有核心數據?
- 30. 我應該在覈心數據中使用級聯還是取消關係?
這個答案有一個很好的比較:http://stackoverflow.com/questions/6173625/what-are-the-limitations-of-nsuserdefaults – dhirschl 2012-01-02 12:35:47