归纳笔记016:Core Data

来源:互联网 发布:网络销售技巧和话术 编辑:程序博客网 时间:2024/06/07 00:39

Core Data的API

Core Data应用中的核心API有如下几个:

(1)   托管对象模型。

(2)   持久化存储协调器。

(3)   托管对象上下文。

(4)   实体描述。

(5)   抓取请求。


持久化操作

掌握上面的API之后,持久化操作如下:

(1)    创建NSManagedObjectModel对象来加载管理应用的托管对象模型。

(2)    以NSManagedObjectModel对象为基础,根据实际需要创建NSPersistentStoreCoordinator对象,该对象确定Core Data底层数据的存储形式。

(3)    以NSManagedObjectModel对象为基础,创建NSManagedObjectContext,该对象时Core Data进行持久化访问的核心对象。

(4)    对于普通的增删改查操作,需要分别先新建实体、删除实体、修改实体,然后调用NSManagedObjectContext对象的save:方法将这些修改保存到底层设备。

(5)    如果要执行查询,则需要先创建爱你NSFetchRequest对象,在调用NSManagedObjectContext的executeFetchRequest:error:方法执行查询,该方法返回所有匹配条件的实体组成的NSArray。


初始化Core Data项目

iOS允许在创建iOS项目时勾选“Use Core Data”复选框,通过这种方式创建iOS项目已经完成了所有CoreData必须资源的初始化,但此处并不打算使用这种方式来初始化,我们将手动初始化来真正理解Core Data。

新建一个EmptyApplication项目,新建项目将只包含一个应用程序委托类。接下来逐步把该项目改造成Core Data项目:

(1)   为该项目添加CoreData.framework框架。

(2)   为该项目添加一个实体模型文件。

(3)   初始化Core Data应用必须的核心API对象。


设计实体模型

对象模型可添加3种对象:

(1)              实体:这是实体模型最核心的对象,每个实体都必须是NSManagedObject类或其子类。

(2)              抓取请求:NSFetchRequest对象,Xcode允许在图形界面上设计抓取请求对象。

(3)              配置:一般无须自行添加配置对象。当开发者添加实体后,系统会自动添加默认的配置。

每个实体也可以添加如下3种属性:

(1)    属性:该属性相当于实体对象的实例变量,用于记录该实体的状态。

(2)    关联关系:该属性定义实体之间的1:1、1:N、N:N关联关系。

(3)    抓取属性:这是关联关系的可选方法,抓取属性允许在获取管理实体时执行某个过滤条件。


使用Core Data实现数据的增、删、改、查

获取托管对象上下文之后,接下来即可通过该对象执行增、删、改、查操作。

(1)    添加实体

1)           调用NSEntityDescription的insertNewObjectForEntityForName:inManag edObjectContext静态方法添加新实体。

2)           为新实体设置属性。

3)           调用NSManagedObjectContext对象的save:方法执行保存。

(2)    删除实体

1)           获取需要删除的实体。

2)           调用NSManagedObjectContest对象的deleteObject:方法删除实体。

3)           调用NSManagedObjectContext对象的save:方法执行保存。

(3)    修改实体

1)           获取要修改的实体。

2)           修改实体的属性。

3)           调用NSManagedObjectContext对象的save:方法执行保存。

(4)    查询实体

1)           创建NSFetchRequest对象。

2)           通过NSEntityDescription对象设置NSFetchRequest对象将要抓取的实体。

3)           如要需要对抓取结果进行筛选,则需要通过NSPredicate对象设置筛选条件。如果需要对结果进行排序,还需要为NSFetchRequest添加多个NSSortDescriptor对象。

4)           调用NSManagedObjcetContext对象的excuteFetchRequest:error:方法执行查询,该查询方法将会返回所有符合条件的实体组成的NSArray集合。


管理实体的关联关系

    Core Data除了可用于管理单独的实体之外,还可用于管理实体与实体之间的关联关系,这些关联关系同样可通过.xcdatamodeld文件进行设计,接下来CoreData应用完全可以利用实体之间的关联关系执行删除、查找等操作。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 出门忘记带洗面奶怎么办 一侧鼻子流清水怎么办 慢性肠胃炎犯了怎么办 儿子拉肚肚子疼怎么办 皮肤太容易过敏怎么办 过敏脸一直不好怎么办 脸上突然过敏怎么办急救 脸过敏发红疼怎么办 脸上突然过敏了怎么办 脸过敏总反复怎么办 用蜂蜜洗脸过敏怎么办 脸上涂蜂蜜过敏怎么办 孕晚期脸过敏怎么办 吃芒果脸过敏怎么办 脸上老反复过敏怎么办 用什么都过敏怎么办 脸上起过敏湿疹怎么办 脸上发湿疹过敏怎么办 感冒流鼻涕有痰怎么办 咳嗽流清水鼻涕怎么办 脸最近老是过敏怎么办 鼻炎脸特别疼怎么办 宝宝感冒一直流鼻涕怎么办 经常过敏的体质怎么办 一边鼻子堵了怎么办 鼻炎流清水鼻涕怎么办 鼻子总感觉堵塞怎么办 半边鼻子不通气怎么办 鼻炎感冒了鼻塞怎么办 左边鼻子不通气怎么办 婴儿鼻塞不通气怎么办 过敏性鼻炎一直打喷嚏怎么办 一只鼻子流鼻涕怎么办 一个鼻子不通气怎么办 夏天鼻子堵了怎么办 做完鼻子感冒了怎么办 鼻子不通流鼻涕打喷嚏怎么办 一岁半宝宝流鼻涕鼻塞怎么办 没有感昌流鼻涕怎么办 婴儿感冒咳嗽流鼻涕怎么办 小孩经常流鼻子怎么办