在过去的几个月中,我爱上了核心数据,并将其用于保存在包括用户设置在内的应用程序中。它效果很好,但恐怕我会在未来的更新中遇到问题。

我知道3种将首选项存储在我的应用程序-1。核心数据中的方法。 2. nsuserDefaults。 3.在设置组件中使用构建。

喜欢了解这种方法的利弊。

谢谢Shani

有帮助吗?

解决方案

编辑注意: 我以前的链接, 实施应用程序首选项, , 被打破。此答复的其余部分仍应适用。但是,您现在也可以 将数据存储在iCloud 以类似于(但与之分开)的方式 NSUserDefaults.

您可以参考苹果自己的指南: 关于偏好和设置

首先,您可以根据需要存储设置:它只是用户数据。 NsuserDefaults和Core数据之间的选择就在API之间,前者专门设计用于处理用户首选项。但是你 可以 (从技术上讲)使用INI文件,如果您绝对想(但不要!)。因此,有3种以上的方法可以做到这一点。

其次,NsuserDefaults和“内置设置组件”实际上是相同的。使用“设置”应用程序仍将存储在使用该API中的应用程序中的NsuserDefaults中。

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

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

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

总结:使用nsuserdefaults进行设置,并根据必须更改设置和特定需求的频率来建立内置设置应用程序和拥有自己的控制面板。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top