0

在过去的几个月里,我爱上了核心数据,并用它来保存我的应用程序中的数据,包括用户设置。它工作得很好,但我担心我将来的更新会有问题。

我知道在我的应用程序中存储偏好的 3 种方法 - 1. 核心数据。2. NSUserDefaults。3.使用内置设置组件。

喜欢了解这种方法的优缺点。

谢谢沙尼

4

1 回答 1

4

编辑说明:我以前的链接,实施应用程序首选项, 被打破。该答复的其余部分仍应适用。但是,您现在还可以以类似于(但独立于)的方式将数据存储在 iCloudNSUserDefaults中。

可以参考苹果自己的指南:关于首选项和设置

首先,您可以随心所欲地存储设置:它只是用户数据。NSUserDefaults 和 Core Data 之间的选择只是在 API 之间,前者是专门为处理用户偏好而设计的。但是,如果您绝对想要(但不要!),您可以(技术上)使用 INI 文件。所以有超过3种方法可以做到这一点。

其次,NSUserDefaults 和“内置设置组件”确实是一回事。使用设置应用程序仍会将首选项存储在您使用该 API 在您的应用程序中访问的 NSUserDefaults 中。

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

但这实际上是 GUI 的问题,而不是如何存储设置。

至于使用 Core Data 或 NSUserDefaults ......好吧,正如我所说,一个是专门为用户偏好设计的,另一个是为基于行的用户数据设计的。NSUserDefaults 让您拥有默认设置,添加新设置很简单,并支持内置设置系统。它也很简单:它只是加载一个属性列表。另一方面,Core Data 需要整个持久存储和托管对象上下文堆栈。

总结一下:使用 NSUserDefaults 进行设置,并根据必须更改设置的频率和您的特定需求在内置设置应用程序和拥有自己的控制面板之间进行选择。

于 2011-01-14T12:14:03.220 回答