自学CoreData的理解

CoreData:

简述:苹果封装了SQLite数据库的功能,为苹果开发者提供的一种数据持久化工具.

构造:

代码外:

1.生成xcdatamodeld文件(建立entity数据模型)

new file

2.界面说明

界面简单介绍

3.由表生成coredata使用的模型类,需要选择想生成的表

生成表的模型子类

代码内:

1.NSManagedObjectModel *managedObjectModel;

数据对象模型:从.xcdatamodeld文件得到模型.

2.NSManagedObjectContext *managedObjectContext;

上下文:管理数据的增删改查(CRUD),保存的对象.

3.NSPersistentStoreCoordinator *persistentStoreCoordinator;

持久化储存协调者:将数据保存成数据库放置在沙盒中.

4.NSManagedObject *obj;

保存数据库中表对应的对象.

5.NSFetchRequest *fetchRequest;

设定查找条件,配合NSPredicate(设定条件),NSEntityDescription(设定哪个表),context(取得搜索结果)使用

6.NSEntityDescription *entity;

取得表的数据模型

7.NSPredicate *predicate;

用于设定筛选条件的类.介绍:nshipster.cn/nspredicate/

流程:

1.搭建CoreData运行环境:

ApplicationDelegate.h (@interface 添加属性和方法)

以便使用CoreData时调用

ApplicationDelegate.m


实现实例方法,合成getter方法

根据xcdatamodeld配置代码中的数据模型,持久化储存协调者,管理数据的上下文.


取得数据模型
用数据模型和地址.将数据库保存
为上下文绑定持久化储存调节者

2.使用:

查找:(NSFetchRequest,NSPredicate联用,配合context筛选出想要的表对象)

通过设定条件,然后使用context执行executeFetchRequest得到筛选结果(数组类型)

读取:(kPerson是表名(Entity),需要取得AppDelegate而得到上下文等属性)

不设定条件,会返回所有kPerson的数据表对象

删除:

筛选出需要删除的数据表对象,context执行deleteObject方法,然后保存(save)

增加:

NSEntityDescription类方法insertNewObjectForEntityForName可以生成NSManagedObject(数据表对象)

修改:

取出数据表对象,修改好,保存上下文即可


补充:context管理一切由表生成的对象(以下可以代替删除里的筛选部分)

因为我之前将这些数据表对象保存在了可变数组里

后记:

给自己保存下来,温故知新.记得很乱,排版很乱.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容