2012-01-02 37 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

相关问题