iOS App开发中Core Data框架基本的数据管理功能小结

2020-01-15 15:58:23丽君

iOS,Core,Data

 

4.对属性和关系进行设置
选中一个属性或者关系,在右侧的工具栏中可以对属性进行一些设置,如下图:

iOS,Core,Data

name设置属性的名字,Optional类型代表可选,即在实例化对象时可以赋值也可以不赋值。Attribute设置属性的数据类型,Default Value设置数据的默认值。
二、数据模型管理类NSManagedObjectModel

通过NSManagedObjectModel,可以将创建的数据模型文件读取为模型管理类对象,使用如下方法:
//获取.xcdatamodeld文件url
NSURL *modelUrl = [[NSBundle mainBundle]URLForResource:@"Model" withExtension:@"momd"];
//读取文件
NSManagedObjectModel * mom = [[NSManagedObjectModel alloc]initWithContentsOfURL:modelUrl];

其中还有一些属性和方法进行数据模型的管理:

//将多个数据模型管理文件进行合并
+ (nullable NSManagedObjectModel *)mergedModelFromBundles:(nullable NSArray<NSBundle *> *)bundles; 
//将多个数据模型管理类对象进行合并
+ (nullable NSManagedObjectModel *)modelByMergingModels:(nullable NSArray<NSManagedObjectModel *> *)models;
//存放数据中所有实体模型的字典 字典中是实体名和实体描述对象
@property (readonly, copy) NSDictionary<NSString *, NSEntityDescription *> *entitiesByName;
//存放数据中所有实体描述对象
@property (strong) NSArray<NSEntityDescription *> *entities;
//返回所有可用的配置名称
@property (readonly, strong) NSArray<NSString *> *configurations;
//获取关联某个配置的所有实体
- (nullable NSArray<NSEntityDescription *> *)entitiesForConfiguration:(nullable NSString *)configuration;
//为某个实体关联配置
- (void)setEntities:(NSArray<NSEntityDescription *> *)entities forConfiguration:(NSString *)configuration;
//创建请求模板
- (void)setFetchRequestTemplate:(nullable NSFetchRequest *)fetchRequestTemplate forName:(NSString *)name;
//获取请求模板
- (nullable NSFetchRequest *)fetchRequestTemplateForName:(NSString *)name;

关于实体描述对象NSEntityDescription:

实体类似于数据库中的表结构,例如上次我们创建的班级实体模型,一个实体模型中可以添加许多属性与关系,NSEntityDescription对象中存放这些信息,常用如下:

//实体所在的模型管理对象
@property (readonly, assign) NSManagedObjectModel *managedObjectModel;
//实体所在的模型管理对象的名称
@property (null_resettable, copy) NSString *managedObjectClassName;