Core Data是iOS5之后才出现的一个框架,本质上是对SQLite的一个封装,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象,通过CoreData管理应用程序的数据模型,可以极大程度减少需要编写的代码数量!
更新于2018.3.7 iOS CoreData (二) 版本升级和数据库迁移
1、首先创建一个coreData 模型文件:系统创建或者自己创建
###2、在data Model 中创建项目中需要用到的实体(Entities),例如,创建一个Student 实体(第一字母必须是大写),以及添加一些name、age、sex 等属性,如下图
###3、生成对应实体的实体类,在此之前要注意下图两个设置部分,否则会引起崩溃现象
4、生成上下文 关联数据库
- NSManagedObjectContext 管理对象,上下文,持久性存储模型对象,处理数据与应用的交互
- NSManagedObjectModel 被管理的数据模型,数据结构
- NSPersistentStoreCoordinator 添加数据库,设置数据存储的名字,位置,存储方式
- NSManagedObject 被管理的数据记录
- NSFetchRequest 数据请求
- NSEntityDescription 表格实体结构
①、自己创建模型文件时需要以下代码来手动生成上下文,关联数据库
1 | //创建数据库 |
②、系统创建模型文件时会自动生成关联数据库的代码,在iOS10以下和iOS10之后生成的不一样,出现了一个新类NSPersistentContainer。
NSPersistentContainer是一个容器,封装了应用程序中的CoreData Stack(核心数据栈堆),简化了创建和管理的核心堆栈的数据处理创建NSManagedObjectModel,NSPersistentStoreCoordinator,NSManagedObjectContext。详情可以看看这篇文章:http://blog.csdn.net/u013263917/article/details/53277708
1 |
|
###5.增删改查排
- 写入数据
1 | // 1.根据Entity名称和NSManagedObjectContext获取一个新的继承于NSManagedObject的子类Student |
- 删除数据
1 | - (void)deleteData{ |
- 更新修改
1 | //更新,修改 |
- 读取查询
1 | //读取查询 |
- 排序
1 | //排序 |
#####CoreData调试:
打开Product,选择Edit Scheme.
选择Arguments,在下面的ArgumentsPassed On Launch中添加下面两个选项,如图:
(1)-com.apple.CoreData.SQLDebug
(2)1
参考文献:
http://www.jianshu.com/p/880dd63c5f5e
http://www.jianshu.com/p/79ba72810d29
http://www.jianshu.com/p/3e4f33b5b013
http://blog.csdn.net/u013263917/article/details/53277708
http://blog.csdn.net/u013263917/article/details/53277863
示例Github:CoreDataLearn
更新于2018.3.7 iOS CoreData (二) 版本升级和数据库迁移