什么是Core Data
Core Data是一个方便的ORM框架。
本文主要会讲在Xcode11下Core Data的简单使用,并且以MVC框架的方式展示一个demo。
关于Core Data的原理不多说,边用边说
-
创建Single view app工程选择
use core data
-
在
Datadb.xcdatamodeld
中创建实体类
3. 设置实体后生成创建管理对象子类(重要!)
只要一路next
就行了,最后选择生成的目录。
会得到两个实体文件。
- 新建一个
Cocoa Touch class
文件,继承NSObject
作为Service处理表相关的逻辑。并对实体管理子类文件,整理得到如下文件目录结构
- 编写service层
获得代理以及上下文
重点来了!先介绍下需要用到的对象!
NSManagedObjectContext:
这是连接你的应用程序和object model中间的另外一座桥梁,通过这个上下文,你可以实现增删改查等操作
而一个程序的上下文是在AppDelegate
进行托管的,所以我们要拿到上下文,就要从AppDelegate
中拿到。
//获得当前程序的应用代理
let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate
//通过应用代理对象,获得管理对象上下文
let managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
我们拿到上下文后就可以进行crud的实现了,下面是根据Person
实体类实现的简单crud
功能
CRUD实现
func saveInfo(name: String, phone: String){
//通过管理对象上下文,插入一条实体数据
let person = NSEntityDescription.insertNewObject(forEntityName: "Person"