Core Data Tutorial

core data支持IOS 3以后的系统。
Core Data是不是一个关系数据库或关系数据库管理系统(RDBMS)
Core Data不是银弹
新建工程时,勾上core data的选项之后,在appdelegate.h文件中会自动生成几个成员变量
其中applicationDocumentsDirectory会返回持久化存储数据的路径
调用saveContext方法,可以保存你改变的数据

core data stack:
[img]http://dl.iteye.com/upload/attachment/0081/9068/12c0dca6-00ab-372a-a37e-d451a181df4e.png[/img]

A managed object:它是NSManagedObject或者NSManagedObject的子类的实例,就是类似于数据库中表里面的一条数据,也就是MVC中的Modle类。
The managed object context:是NSManagedObjectContext的实例,主要管理managed objects,它在你的应用里处于重要位置,在应用的生命周期里管理验证、关系维护、redo/undo操作。

managed Objects in Context:
[img]http://dl.iteye.com/upload/attachment/0081/9098/0a27eeb7-47d8-3d51-bde5-f8a7e4e0b4b3.png[/img]
a managed object context包含了两条记录,但是在内存中,其中一条数据已经改变了,但是因为没有提交,所以a managed object context中的记录还是没有变化的。

A managed object model:它是NSManagedObjectModel的实例,它是在database和modle中间的entity description,model是entity(NSEntityDescription实例)的集合(模型是一个实体的描述对象的集合)
它们之间的关系:
[img]http://dl.iteye.com/upload/attachment/0081/9104/83637fba-d185-3c4e-b715-c832276bda47.png[/img]

A persistent store coordinator:它是NSPersistentStoreCoordinator的实例,它管理着持久化的数据存储,A persistent object store是你应用程序的对象和数据库中记录的映射。

A complex Core Data stack:
[img]http://dl.iteye.com/upload/attachment/0081/9117/bd572110-e981-3b03-8792-9a272d46efee.png[/img]

Fetching Managed Objects:取回对象数据需要managed object context和一个取回的请求,请求为NSFetchRequest实例,如果要有order by等操作的,那么使用NSPredicate实例。具体看NSPredicate guide
[img]http://dl.iteye.com/upload/attachment/0081/9233/41691935-bc9a-3fc0-a105-2dfbfb89f41e.png[/img]

Deleting Events:操作具体看代码
如果改了model,那就打不开持久化的数据。
使用NSFetchedResultsController可以提高在fetch大对象的效率,但是尽量不要存储大对象

存储照片,查看
PhotoLocations sample
TaggedLocations sample

Core Data Utility Tutorial:这是一个可以使用代码来创建entity等实体类的命令行模式,就像可以用代码创建代替xib一样,具体可以看下面的官方工程

附件中有实例代码

a managed object context:是一个容器,当你从持久化存储中取出数据,数据会copy一份到容器中,当你通过fetch request进行增删改查操作,这些都是在容器中执行的,当你需要保存数据的时候,save一下,就会持久化到手机。

NSPersistentDocument类提供对容器的操作,它继承自NSDocument,所以可以使用core data的框架进行读写操作。

Entity也可以继承,方式可以通过xocde或者代码(setSubentities)来实现
Entity也可以抽象
NULL在数据库中是一个独立的意思,不代表任何意思,就是没有值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值