【发布时间】:2016-01-02 06:47:32
【问题描述】:
背景:
我有一个应用程序,可以从数据库中检索餐馆列表,每个餐馆都有一组关于它们的基本信息(营业时间、姓名、地址等)。我想在应用程序首次加载时从服务器检索该信息,然后将其存储在应用程序本身中,使用 NSUserDefaults 或核心数据,因为信息不太可能改变。我要存储的最大餐厅数量约为 25,这是一个足够小的数据集合来使用 NSUserDefaults 吗?
我已经研究过存储超过 1,000 条记录的数据的类似问题,但我只存储了一个小数组。
问题:
NSUserDefaults 比 Core Data 更容易使用,所以如果可能的话,我想避免使用 Core Data。就我而言,如果我将餐厅列表存储在 NSUserDefaults 而不是 Core Data 中,会不会出现性能问题?
【问题讨论】:
-
在我看来,只要在不使用的时候清除nsuserdefaults键,存储25个值的数组不会影响任何性能!!!
-
当我不使用它时清除 NSUserDefaults 键是什么意思?一旦填充了该数据,我将需要将其永久保留在该密钥中
-
数据不太可能改变?我不建议在此列表中使用 NSUserDefaults,因为那不是它的用途。你说得对,CoreData 在 25 岁时会过大。我建议将 NSArray 存储在 NSFileManager 中,或者如果它总是相同...创建一个带有硬编码信息的 plist,尽管这意味着它不能在没有当然更新
-
@JimTierney 我打算每个月更新餐厅的数组,所以你会推荐使用 NSFileManager 还是 NSUserDefaults?
-
我建议将 NSArray 保存到 NSFileManager 位置,您只需每月用新数据覆盖此文件即可。 NSUserDefaults 用于存储设置和用户值等,而不是用于存储数据。使用 NSFileManager 是一种基本方法,但适用于您所描述的内容。我还建议您阅读有关存储数据的内容。 CoreData 不仅仅用于存储,这只是它功能的一小部分,尽管值得研究。用于数据库的 SQLite 也不错。 NSFileManager 只是一种在本地保存信息的快捷方式
标签: ios objective-c core-data nsuserdefaults