核心数据与SQLite

时间:2015-06-17 13:10:25

标签: ios objective-c sqlite core-data

我正在编写一个琐事应用程序,其中会有数百套问题。

该应用程序将预先加载一些测验,但是他们需要下载进一步的测验,一旦下载将存储在应用程序中,以便用户可以离线播放。

在这个特定的例子中,我会更好地使用核心数据或SQLite。

提前致谢。

1 个答案:

答案 0 :(得分:2)

你必须意识到的是,CoreData 不是数据库。

它是您应用中的对象持久层。它默认情况下由SQLite DB支持,但这在很大程度上是无关紧要的。

我已经在CoreData商店中编写了应用程序,其中包含100,000个实体和数百万个关系。

CoreData无法处理复杂数据的论点是不正确的。

诀窍在于设计对象模型,就像在代码中定义对象模型一样。

您不需要外键或连接表(这些都是由Core Data为您处理的。)

如果您(例如) Class Student 之间存在多对多关系,则只需在它们之间创建关系并将其定义为{{1两端的关系。 Core Data将通过创建连接表和类似的东西来为您处理数据。你不必担心这一点。

对于预加载数据,您也可以执行此操作。这需要一些工作,但您可以捆绑由CoreData生成的预装数据库,并在首次启动时将其解包。

使用哪种方式主要取决于意见(因此对于StackOverflow来说,这不是一个非常好的问题)。有一些优秀的tutorials on Core Data on the Ray Wenderlich网站。

如果您之前从未使用过CoreData,那么值得一读。