核心数据与SQLite

我正在写一个琐事程序,其中将有数百个问题集。

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

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

提前致谢。

你必须在这里实现的是CoreData 不是一个数据库。

它是你的应用程序中的一个对象持久层。 它恰好在默认情况下由SQLite DB支持,但这在很大程度上是不相关的。

我已经编写了一个CoreData商店的应用程序,其中包含100,000个实体的区域以及它们之间的数百万个关系。

CoreData无法处理复杂数据的说法不正确。

诀窍是devise你的对象模型就像你将在代码中定义你的对象模型一样。

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

如果你有(例如) ClassStudent之间的多对多关系,那么只需在它们之间build立一个关系,并在每一端定义它为一个Many关系。 核心数据将通过创build连接表和类似的东西来处理数据。 你不必担心这一点。

为了预加载数据,你也可以这样做。 它需要一些工作,但是你可以捆绑由CoreData生成的预加载的数据库,并在首次启动时解开它。

哪一个使用很大程度上归结为意见(所以不是一个非常好的StackOverflow问题)。 Ray Wenderlich网站上有关于Core Data的一些优秀教程 。

值得一读,如果你从来没有使用过CoreData。