我来自Ruby on Rails环境,我真的很喜欢那里的Active Record。我在iPhone上使用sqlite进行了一个小概念验证项目,我意识到自己有多少被宠坏了;)
对于下一个应用程序,我考虑使用Core Data(因为我相信它的工作方式将接近Active Record)。我的应用程序将为用户提供大量数据(包括许多相关表),我打算在常规基础上更新这些数据(每2-3个月)。使用sqlite,这就像下载sqlite文件一样简单,使用Core Data也很简单吗?
答案 0 :(得分:2)
核心数据与Active Data Record非常相似。主要区别在于Active Data从SQL存储演变为应用程序对象代码,而Core Data从应用程序对象演变为各种存储。更简洁的是,Active Data在没有SQL存储的情况下不起作用,但Core Data工作正常,没有任何存储。
因此,Core Data真正的优势在于对对象之间的复杂关系进行建模。使用的持久性存储的类型(如果有的话)在很大程度上是不相关的。核心数据使复杂模型与复杂的计算机和人机界面之间的联系变得非常容易。
另一方面,您必须维护对象图的完整性,以便不能批量导入持久性存储。您下载数据,创建托管对象并将其插入持久存储。虽然这看起来既复杂又缓慢,但与下载整个商店相比,无论您是否需要所有数据,都不是特别相似。
即使它更复杂,将Core Data集成到应用程序其余部分的简便性通常也会有所回报。
如果您正在考虑编写和维护多个iOS应用程序,那么值得您花时间攀登Core Data的学习曲线。
答案 1 :(得分:1)
SQLite是一个持久存储,Core Data是一个对象图。它们并不完全相同 - 尽管Core Data可以存在于SQLite之上。
实际上,这取决于您要存储的数据量,以及除了编写数据外还需要查看的频率。使用Core Data比使用SQLite更加困难,特别是如果你拥有大量数据;但是,对于常见情况(小更新,读取)可能更容易使用,这可能会抵消许多这些问题。