目前,我正在开发一个功能严重依赖于检索到的JSON数据的应用程序。我打算将大部分数据保存到核心数据中。但是,我不确定是否还必须在核心数据中保存所有与用户有关的内容(设置,收藏夹,推特,Facebook等),还是应该使用NSUserDefaults?什么是优点和缺点?我应该使用核心数据来存储一些用户首选项还是将其保存在NSUserDefaults中?
回答
你可以参考苹果自己的指南:Implementing Application Preferences
,只要你想,你可以存储在任何方式向用户设置:NSUserDefaults的和核心数据之间的选择就是API,其中前者实际上是专门用来处理之间用户偏好。
NSUserDefaults和“内置设置组件”实际上是一样的。使用设置应用程序仍然会将首选项保存在您使用该API访问应用程序的NSUserDefaults中。
您可能不想使用内置设置应用程序的原因是:用户更改这些设置很麻烦。如果用户可能需要频繁更改设置,则可能需要在应用内部执行此操作(例如,开启/关闭音乐,更改播放器名称)。此外,由于您可以完全控制自己的应用程序,因此您可以拥有比Apple在Settings.app中提供的GUI更灵活的GUI。至于使用Core Data或NSUserDefaults ...我会说随着NSUserDefaults去吧实施起来要容易得多,而且是为了实现这一目标而设计的,因为实施核心数据需要付出很多努力。
对于任何人发现2017+线程,上面链接的页面不再存在。我相信本指南现在称为[首选项和设置编程指南](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/UserDefaults/Introduction/Introduction.html),是更新后的版本。 – 2017-07-31 01:59:14
- 1. 我应该使用NSUserDefaults还是plist来存储数据?
- 2. 我应该将我的图像保存在核心数据中,还是应该使用SDWebImage
- 3. 我应该如何存储核心数据“选定”项目?
- 4. 我应该使用mysql还是ssdb来存储like/vote数据?
- 5. 在NSUserDefaults中保存用户选项
- 6. 我应该使用什么数据类型在核心数据中存储GUID?
- 7. 我应该在数据库中存储Type还是应该将其存储在枚举中?
- 8. 将核心数据实体保存在NSUserDefaults中
- 9. 我是否可以将Realm用于所有数据存储,还是应该使用NSUserDefaults来存储用户名/密码?
- 10. 在Ruby中存储用户首选项
- 11. 云核心数据存储多用户
- 12. 我应该使用SQL还是核心数据?
- 13. iOS 5数据存储:核心数据,SQL或其他选项?
- 14. 我应该使用SqlBulkCopy还是存储过程导入数据
- 15. 我应该使用文件还是数据库表来存储参数?
- 16. 将核心数据存储在NSOperation中
- 17. 使用NSUserDefaults保存数据
- 18. 使用共享首选项存储用户数据可靠吗?
- 19. 我应该在数据库还是json文件中保存用户通知?
- 20. 我应该使用phonegap本地存储来存储复选框字段选项
- 21. 我应该使用道具还是状态来存储TreeView数据?
- 22. 我应该将翻译存储在核心数据中还是作为本地化字符串?
- 23. 使用核心数据存储对象
- 24. swift ios应该使用核心数据还是数组/结构
- 25. 使用NSMutableArray保存到核心数据
- 26. 保存在核心数据
- 27. 将数据存储在共享首选项中不起作用
- 28. Android试图使用首选项来保存数据
- 29. 核心数据策略在内存缓存中使用,还是根本没有核心数据?
- 30. 我应该在核心数据中使用级联还是取消关系?
这个答案有一个很好的比较:http://stackoverflow.com/questions/6173625/what-are-the-limitations-of-nsuserdefaults – dhirschl 2012-01-02 12:35:47