iOS中的持久化方式一般有四种:
- 属性列表
- 对象序列化
- SQLite数据库
- CoreData
今天我们来重点说说CoreData 方式:
定义
CoreData是iOS5之后才出现的一个框架, 它提供了对象-关系映射(ORM)的功能,即 能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象. 在此数据操作期间,我们不需要编写任何SQL语句.
模型文件
在CoreData中,需要进行映射的对像成为实体(entity), 而且需要使用Core Data模型文件来描述app中的所有实体和实体属性
特征
- 通过CoreData管理应用程序的数据模型,可以极大程度减少需编写的代码数
- 将对象数据存储在SQLite数据库已获得性能优化.
- 提供NSFetchResultsController类用于管理表视图的数据.
- 管理undo (备份,以便回滚,撤回)/redo (恢复已提交的事务)操作
- 检查托管对象的属性值是否正常
对象成员
- NSManagerObject
被管理的数据纪录NSObjectModel是描述应用程序的数据模型,这个模型包含实体(Entity), 特性(Property),读取请求(FetchRequest)等 - NSManagerObjectContext
管理对象上下文, 持久性存储模型对象,参与对数据对象进行各种操作的全过程,并检测数据的变化, 负责应用和数据库之间的交互 - NSPersistentStoreCoordinator
相当于数据库文件管理器,处理底层的对数据源文件的读取与写入. - NSManagedObjectModel
被管理的数据模型,数据结构 - NSFetchRequest
数据请求 - NSEntityDescription
表格实体结构,
注: .xcdatamodel文件编译后为 .momd 或者 .mom文件
开发步骤
1.初始化NSManagedObjectModel对象,加载模型文件,读取app中的所有实体信息
2.初始化NSPersistentStoreCoordinator对象,添加持久化库(这里采取SQLite数据库)
3.初始化NSManagedObjectContext对象,拿到这个上下文对象操作实体,进行CRUD操作
未完待续…..