2012-01-02 42 views
7

目前,我正在開發一個功能嚴重依賴於檢索到的JSON數據的應用程序。我打算將大部分數據保存到核心數據中。但是,我不確定是否還必須在覈心數據中保存所有與用戶有關的內容(設置,收藏夾,推特,Facebook等),還是應該使用NSUserDefaults?什麼是優點和缺點?我應該使用核心數據來存儲一些用戶首選項還是將其保存在NSUserDefaults中?

+0

這個答案有一個很好的比較:http://stackoverflow.com/questions/6173625/what-are-the-limitations-of-nsuserdefaults – dhirschl 2012-01-02 12:35:47

回答

9

你可以參考蘋果自己的指南:Implementing Application Preferences

,只要你想,你可以存儲在任何方式向用戶設置:NSUserDefaults的和核心數據之間的選擇就是API,其中前者實際上是專門用來處理之間用戶偏好。

NSUserDefaults和「內置設置組件」實際上是一樣的。使用設置應用程序仍然會將首選項保存在您使用該API訪問應用程序的NSUserDefaults中。

您可能不想使用內置設置應用程序的原因是:用戶更改這些設置很麻煩。如果用戶可能需要頻繁更改設置,則可能需要在應用內部執行此操作(例如,開啓/關閉音樂,更改播放器名稱)。此外,由於您可以完全控制自己的應用程序,因此您可以擁有比Apple在Settings.app中提供的GUI更靈活的GUI。至於使用Core Data或NSUserDefaults ...我會說隨着NSUserDefaults去吧實施起來要容易得多,而且是爲了實現這一目標而設計的,因爲實施核心數據需要付出很多努力。

+0

對於任何人發現2017+線程,上面鏈接的頁面不再存在。我相信本指南現在稱爲[首選項和設置編程指南](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/UserDefaults/Introduction/Introduction.html),是更新後的版本。 – 2017-07-31 01:59:14

相關問題