阅读更多
core data支持IOS 3以后的系统。
Core Data是不是一个关系数据库或关系数据库管理系统(RDBMS)
Core Data不是银弹
新建工程时,勾上core data的选项之后,在appdelegate.h文件中会自动生成几个成员变量
其中applicationDocumentsDirectory会返回持久化存储数据的路径
调用saveContext方法,可以保存你改变的数据
core data stack:
A managed object:它是NSManagedObject或者NSManagedObject的子类的实例,就是类似于数据库中表里面的一条数据,也就是MVC中的Modle类。
The managed object context:是NSManagedObjectContext的实例,主要管理managed objects,它在你的应用里处于重要位置,在应用的生命周期里管理验证、关系维护、redo/undo操作。
managed Objects in Context:
a managed object context包含了两条记录,但是在内存中,其中一条数据已经改变了,但是因为没有提交,所以a managed object context中的记录还是没有变化的。
A managed object model:它是NSManagedObjectModel的实例,它是在database和modle中间的entity description,model是entity(NSEntityDescription实例)的集合(模型是一个实体的描述对象的集合)
它们之间的关系:
A persistent store coordinator:它是NSPersistentStoreCoordinator的实例,它管理着持久化的数据存储,A persistent object store是你应用程序的对象和数据库中记录的映射。
A complex Core Data stack:
Fetching Managed Objects:取回对象数据需要managed object context和一个取回的请求,请求为NSFetchRequest实例,如果要有order by等操作的,那么使用NSPredicate实例。具体看NSPredicate guide
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在数据库中是一个独立的意思,不代表任何意思,就是没有值
- 大小: 28.8 KB
- 大小: 28.7 KB
- 大小: 29.8 KB
- 大小: 70.5 KB
- 大小: 61.6 KB
- Locations.zip (36.3 KB)
- 下载次数: 0
- CoreDataUtility.zip (11.2 KB)
- 下载次数: 0
- CoreDataUtilityTutorial.pdf (289.5 KB)
- 下载次数: 0
- iPhoneCoreData01.pdf (1.3 MB)
- 下载次数: 0
- 大小: 27.4 KB