最快的 iOS 应用数据存储
Posted
技术标签:
【中文标题】最快的 iOS 应用数据存储【英文标题】:Quickest datastore for iOS app 【发布时间】:2015-02-17 05:05:45 【问题描述】:我需要一个在应用关闭/打开之间持续存在的数据存储。对于这个简单的项目来说,实现数据库过于复杂和耗时。
这是一个非常简单的表格列表应用程序,它的输入表单不超过四个字段。该数据将显示在表格中。
在 plist 文件和 Core Data 之间,哪种方法最有效?
【问题讨论】:
如果您不需要索引,那么纯文本文件怎么样? FWIW,Dobbs 博士似乎推荐 SQLite:drdobbs.com/mobile/ios-data-storage-core-data-vs-sqlite/… 就像我说的,数据库太复杂了。对于文本文件或 plist,您必须滚动所有内容。我正在学习 Core Data,因为它已经构建了很多。我只是从未使用过它,所以我不完全确定它是否会比文本文件或 plist 更快。 What are some advantages of using Core Data? (as opposed to plist)的可能重复 @Bluehound:不。你没有阅读问题。核心数据只是问题的一部分。 plist 是另一个,如下所示,NSUserDefaults 可能是解决方案。所以不确定你试图强迫答案是核心数据。 【参考方案1】:NSUserDefaults
怎么样?
var userDefaults = NSUserDefaults.standardUserDefaults()
保存数据:
userDefaults.setValue(yourObject, forKey: "yourKey")
或:
userDefaults.setObject(yourObject, forKey: "yourKey")
保存新数据后,别忘了调用:
userDefaults.synchronize()
加载保存的数据(在应用关闭等之后):
var yourObject = userDefaults.valueForKey("yourKey")
或
var yourObject = userDefaults.objectForKey("yourKey")
【讨论】:
我要存储整个数组吗?如果我尝试存储每个表的数据价值,我认为这不会很好。所有这些数据都将存储在一个数组中,并且管理数组的存储似乎是最简单的。【参考方案2】:查看糖记录。它是 Core Data 的一个很好的包装器,它真正简化了事情,易于启动和运行,并且大多数事情都可以通过几行代码来完成。
https://github.com/SugarRecord/SugarRecord
【讨论】:
【参考方案3】:使用 plist 文件的最大优点可能是简单。然而,如果你有很多数据,想在表格视图中优雅地组织它,或者基本上想做任何更高端的事情,Core Data 为这些事情提供了强大的功能,并且在内存管理方面做得更好。一个使用 tableview 组织数据的简单表格列表应用程序,我建议使用 Core Data,因为它的 NSFetchedResultsController
类只加载必要的数据,并且在修改托管对象上下文时具有有用的委托方法。
有关NSFetchedResultsController
的完整实现,请参阅此GitHub Project。
【讨论】:
以上是关于最快的 iOS 应用数据存储的主要内容,如果未能解决你的问题,请参考以下文章