iPhone应用程序用户设置-推荐的方法是什么?

iPhone应用程序用户设置-推荐的方法是什么?,iphone,user-preferences,Iphone,User Preferences,在过去的几个月里,我爱上了核心数据,并用它在我的应用程序中保存数据,包括用户设置。它的工作原理很好,但我担心我会有问题与未来的更新 我知道在我的应用程序中存储首选项的3种方法- 1.核心数据。 2.默认值。 3.使用内置设置组件 我喜欢了解这种方法的利弊 谢谢 沙尼 编辑注释:我的上一个链接已断开。此答复的其余部分仍应适用。但是,您现在也可以使用类似于(但与)NSUserDefaults的方式 您可以参考苹果自己的指南: 首先,您可以根据需要存储设置:它只是用户数据。NSUserDefaults

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

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

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

谢谢 沙尼

编辑注释:我的上一个链接已断开。此答复的其余部分仍应适用。但是,您现在也可以使用类似于(但与)
NSUserDefaults
的方式

您可以参考苹果自己的指南:

首先,您可以根据需要存储设置:它只是用户数据。NSUserDefaults和核心数据之间的选择只是API之间的选择,前者是专门为处理用户偏好而设计的。但是如果您确实想(但不想!),您可以(技术上)使用INI文件。因此,有三种以上的方法可以做到这一点

第二,NSUserDefaults和“内置设置组件”实际上是一回事。使用设置应用程序仍会将首选项存储在NSUserDefaults中,您可以使用该API在应用程序中访问这些首选项

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

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

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

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

编辑注释:我的上一个链接已断开。此答复的其余部分仍应适用。但是,您现在也可以使用类似于(但与)
NSUserDefaults
的方式

您可以参考苹果自己的指南:

首先,您可以根据需要存储设置:它只是用户数据。NSUserDefaults和核心数据之间的选择只是API之间的选择,前者是专门为处理用户偏好而设计的。但是如果您确实想(但不想!),您可以(技术上)使用INI文件。因此,有三种以上的方法可以做到这一点

第二,NSUserDefaults和“内置设置组件”实际上是一回事。使用设置应用程序仍会将首选项存储在NSUserDefaults中,您可以使用该API在应用程序中访问这些首选项

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

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

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


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

hmmm有点离题,但我可以知道您从哪里了解核心数据吗?我一直避免使用核心数据,因为我一直认为plist和首选项就足够了。。。(我知道它的优势或核心数据是因为它可以执行sql查询)嗨。我有一个内置了plists的应用程序,我不得不说,转移到核心数据让我的生活变得更加轻松,并为我的应用程序打开了更多的选项。我个人是通过阅读苹果的示例项目,通过使用核心数据试验和构建简单的应用程序来学习的。这需要时间,我还有很多东西要学,但我真的相信,最好的办法就是不断尝试,直到有一天你完全明白了。祝你好运。嗯,有点离题了,但我能知道你从哪里学习核心数据吗?我一直避免使用核心数据,因为我一直认为plist和首选项就足够了。。。(我知道它的优势或核心数据是因为它可以执行sql查询)嗨。我有一个内置了plists的应用程序,我不得不说,转移到核心数据让我的生活变得更加轻松,并为我的应用程序打开了更多的选项。我个人是通过阅读苹果的示例项目,通过使用核心数据试验和构建简单的应用程序来学习的。这需要时间,我还有很多东西要学,但我真的相信,最好的办法就是不断尝试,直到有一天你完全明白了。祝你好运,你好,维克维奇。首先谢谢你。即使应用程序已经使用了核心数据(这意味着我只需要为用户首选项设置其他实体),您是否仍然更喜欢使用NSUserDefaults?是的,我会!NSUserDefaults是一个非常轻量级的系统,它巧妙地将设置与