我正在编写一个琐事应用程序,其中会有数百套问题。
该应用程序将预先加载一些测验,但是他们需要下载进一步的测验,一旦下载将存储在应用程序中,以便用户可以离线播放。
在这个特定的例子中,我会更好地使用核心数据或SQLite。
提前致谢。
答案 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,那么值得一读。