Core Data字面意思就是核心数据,但它其实并不是一个数据库,它是一个框架,就像我们之前经常用到的Foundation一样,我们做持久化的时候,使用Core Data非常方便。下面展示的是Core Data框架的结构图:
我们来新建一个项目进行添加core data的学习。
新建一个项目,在项目中添加new file的时候可以看到专门有一个Core Data的选项
我们选择Data Model,创建,使用默认名字,现在看到工程里多出了一个Model.xcdatamodeld,点击已下按钮添加一个实体:
取名为Info,在Attributes中增加属性,看起来像一张表的属性:
Relationships是关联,实体实体间有关联的话这个选项是有用的。创建了实体,实体里面有属性,Core Data初始化的工作就算做完了。
持久化的时候一般都会选择SQLite,Core Data只在前台做封装,不关心后台用什么实现。
分析上面CoreData的结构图,要使用CoreData一般的做法是:
1.创建SQLite数据库,需要有路径和DB Name。
2.Core Data要使用的对象,经常用到的是NSMangeObject、NSMangeObjectContext 和 NSEntityDescription。NSMangeObject是数据对象,NSMangeObjectContext 是管理对象的上下文,用来缓存我们的查询操作,NSEntityDescription是实体描述,用来描述我们查找的对象。
NSMangeObjectContext依赖于NSPersistentStoreCoordinator(持久化存储协调器)和NSEntityDescription,相当于给用户进行操作的内存空间,只有当我们操作完成后调用最终的save方法,我们的操作才会被写入数据库中。
NSPersistentStoreCoordinator需要知道NSManageObjectModal和存储的类型、路径和文件名称,用来协调用户和底层数据。
NSManageObjectModal:相当于底层,类似于数据库对象的功能,以.momd文件来产生。我们上面创建Model的时候生成的.xcdatamodeld文件编译后生成.momd文件。
下一话中我们通过实例来理解上面的内容,打开AppDelegate文件,保留它的第一个方法就行。