Coredata和SQLite

gir*_*ish 1 sqlite core-data objective-c

我是Objective-C编程的新手.我不明白"核心数据"的概念 - 有人可以建议任何好的资源来学习"核心数据"(以及SQLite)吗?任何帮助将不胜感激.

Tec*_*Zen 11

我能给出的最重要的建议是不要将Core Data与SQLite或SQL混淆.因为Core Data可以将SQLite用作一个,但只能使用几种持久性方法中的一种,很多新手都认为Core Data只是面向SQL的面向对象,因此Core Data可以用SQL来理解,例如表,列,行,键,连接等.但是,核心数据实际上与SQL无关,而且您对于应用于Core Data的SQL知之甚少.

SQL和核心数据从完全相反的方向处理数据并使人们绊倒.

SQL主要关注的是将数据传入和传出持久存储(通常是驱动器).一旦读入数据,程序对数据的处理方式不是SQL的问题.

相反,Core Data主要关注在运行时管理内存中的活动对象.它主要关注建模/模拟程序处理的现实世界对象,事件或条件.90%的Core Data工作与此建模相关联,并且持久化数据(SQL主要任务)实际上只是一个想法.实际上,如果需要,您可以使用Core Data来保留任何内容(使用内存存储).

具有SQL背景的新手核心数据程序员浪费了大量时间试图弄清楚Core Data如何实现所有SQL内容,而实际上Core Data在后台完成所有操作,并且只有在您首先使用SQLite存储时才能完成.

学习核心数据时采用的最佳视角是完全忽略数据可能一直存在.相反,采用核心数据的角度来管理内存运行时管理对象及其关系,而不关心它们将如何或是否将被保存.从这个角度来看,核心数据不是作为数据库而是作为数据建模工具展示的.这将把你的注意力放在它所属的位置,数据和数据之间的关系,这反过来将使Core Data的实现细节更容易理解.