CoreData简介:
CoreData是Cocoa平台上用来管理模型层数据和持久化数据的一个框架,主要是数据库存储框架,出来数据库,还可以存储xml和二进制数据。这篇文章主要介绍使用CoreData框架来对数据进行增、删、查操作。
CoreData数据模型的创建
想要使用CoreData,第一步创建数据模型,它描述了数据结构和关联关系等。可以理解为数据库的表结构。
在创建工程的时候,勾选Use Core Data,则Xcode会生成数据模型文件:它是一个.xcdatamodeld格式的文件。
如果创建工程时,没有勾选Use Core Data,则可以选择File -> New -> file 里手动添加该文件:
然后打开该文件,点击Add Entity 来添加一个Entity,也就是数据实体,相当于数据库中的一张表。可以将Entity修改成需要的名字,这里我修改为UserInfo,
图中Attributes是添加属性的地方,Relationships是关联关系的地方,点击+即可添加想要的属性。这里我给UserInfo添加userId和username两个属性。
选中一个数据,我们可以看到右侧的面板里面有该数据的一些属性,可以对数据进行一些限制,如字符串长度,数字类型的最大最小值;设置索引、默认值等。不同的数据类型可以设置不同的内容,一般维持默认就可以。
另外对于每一个 entity 实体类,Build 过后 Xcode 都会自动帮我们生成相应的实体类代码,生成的代码不会在工程目录中显示出来,但是可以通过导入头文件索引到;当然也可以配置成手动生成的,选中对应的 Entity 然后点击右侧面板的 Codegen,把 ClassDefinition 修改成 Manual/None,然后 Xcode 就不会再自动生成了。
默认语言是Swift,如果想修改成Objective-C,则:
这个时候也可以通过 Editor -> Create NSManagedObject Subclass 来生成相应的实体类:
需要注意的是,如果前面有自动生成过这些类文件,手动生成后可能会编译出错,因为工程里会索引到两份同样的代码,这个时候需要 Clean 一下工程再 Build 即可。
到此为止,CoreData 的数据模型就创建好了。
CoreData工程中使用
CoreData中主要用到三个对象结构:
1、NSManagedObjectModel — 描述了数据模型的结构信息
2、NSPersistentStoreCoordinator — 数据持久层和内存对象模型的协调器
3、NSManagedObjectContext — 内存中 managedObject 对象的上下文
首选创建一个单例,用来管理操作数据库:
在这里,没有将三个对象分开设置,放在创建数据库的方法里面:
1、创建 NSManagedObjectModel
2、创建NSPersistentStoreCoordinator
3、创建对象管理上下文,并设置解析器
接下来增、删、改、查功能就可以用管理上下文的对象[WYCoreDataManager shareManager].objectContext来进行操作了,具体的可以去demo上面看一下。
demo地址:CoreDataModel
网友评论