我应该使用核心数据来存储一些用户首选项还是将其保存在NSUserDefaults中?

时间:2012-01-02 11:47:19

标签: iphone objective-c core-data nsuserdefaults

目前,我正在开发一个功能严重依赖于检索到的JSON数据的应用程序。我打算将大部分数据保存到核心数据中。但是,我不确定是否必须在核心数据中保存所有与用户相关的内容(设置,收藏夹,推特,Facebook等),还是应该使用NSUserDefaults?什么是利弊?

1 个答案:

答案 0 :(得分:9)

您可以参考Apple自己的指南:Implementing Application Preferences

您可以根据需要以任何方式存储用户设置:NSUserDefaults和Core Data之间的选择就在API之间,其中前者实际上是为处理用户首选项而设计的。

NSUserDefaults和“内置设置组件”实际上是同一个。使用设置应用程序仍会在NSUserDefaults中存储您使用该API在您的应用中访问的首选项。

您可能不想使用内置设置应用的原因是:用户更改这些设置很麻烦。如果您有用户可能想要经常更改的设置,您可能希望在应用内进行此操作(例如,打开/关闭音乐,更改播放器名称)。此外,由于您可以完全控制自己的应用程序,因此您可以拥有比Apple在Settings.app中提供的GUI更灵活的GUI。

至于使用Core Data或NSUserDefaults ...我会说与NSUserDefaults一起使用,因为它更容易实现,并且旨在实现这一点,因为实现核心数据需要花费很多精力。