核心数据与SQLite
我正在写一个琐事程序,其中将有数百个问题集。
该应用程序将预先加载一些测验,但他们需要下载进一步的测验,一旦下载将存储在应用程序,以便用户可以离线播放它们。
在这个特定的例子中,我会更好地使用核心数据或SQLite。
提前致谢。
你必须在这里实现的是CoreData 不是一个数据库。
它是你的应用程序中的一个对象持久层。 它恰好在默认情况下由SQLite DB支持,但这在很大程度上是不相关的。
我已经编写了一个CoreData商店的应用程序,其中包含100,000个实体的区域以及它们之间的数百万个关系。
CoreData无法处理复杂数据的说法不正确。
诀窍是devise你的对象模型就像你将在代码中定义你的对象模型一样。
您不需要外键或连接表(这些都是由Core Data为您处理的)。
如果你有(例如) Class和Student之间的多对多关系,那么只需在它们之间build立一个关系,并在每一端定义它为一个Many
关系。 核心数据将通过创build连接表和类似的东西来处理数据。 你不必担心这一点。
为了预加载数据,你也可以这样做。 它需要一些工作,但是你可以捆绑由CoreData生成的预加载的数据库,并在首次启动时解开它。
哪一个使用很大程度上归结为意见(所以不是一个非常好的StackOverflow问题)。 Ray Wenderlich网站上有关于Core Data的一些优秀教程 。
值得一读,如果你从来没有使用过CoreData。
- 怪异的核心数据反应 – 不检测NSManagedObject子类
- 带两个NSFetchedResultsController实例的TableView
- 核心数据错误:_Unwind_Resume从图像CoreData中的函数_PFFaultHandlerLookupRow调用
- SQLite或核心数据的大型数据库只有查询
- 核心数据不更新可转换属性
- 在我的TableView中实现一个SearchBar,并使用NSFetchedResultsController和适当的谓词来使search工作
- 从AppBundle与CoreData加载图像
- 最有效的方法来获得平均值,同时也筛选出一些对象
- 如何使用Core Data上传和存储Cocoa中的文件?