IOS------Core Data的基本使用
来源:互联网 发布:香港直播软件apk 编辑:程序博客网 时间:2024/05/16 07:58
在创建项目过程时,请选中一个标签为Use Core Data的复选框
1. 实体和托管对象
项目导航面板中,有一个名为Core_Data_Persistence.xcdatamodeld的文件,在这里面会有一个数据模型编辑器。它代替了使用代码创建NSObject的子类并让其遵循NSCoding和NSCopying的传统方式。而是现在数据模型编辑器中创建一些实体(entity),然后再代码中为这些实体创建托管对象(managed object)。
注意:“实体”表示对对象的描述,而“托管对象”表示在运行时创建的该实体的具体实例。
实体有属性(property)组成:attribute、relationship、fetched property
- 键—值编码
我们的代码中不在使用存取方法和修改方法,而是使用键—值编码来设置属性或检索它们的已有值。在操作托管对象,用于设置和检索属性值的键就是希望设置的特性的名称。因此,要从托管对象中检索存储在name特性中的值或者要为托管对象的属性设置新值,需要调用一下方法
NSString *name = [myManagedObject valueForKey:@"name"];[myManagedObject setCValue:@"abc" forKey:@"name"];
- 在上下文中结合
这些托管对象位于持久存储中,有时也称为支持存储(backing store)。默认情况下,Core Data应用将支持存储实现为存储在应用Documents目录中的sqlite数据库。期间的相关存取操作都将由Core Data完成。除了sqlite之外,支持存储还可以作为二进制文件实现,甚至以XML形式存储。
出了创建它之外,我们不会直接操作持久存储,而是使用所谓的托管对象上下文。上下文协调对持久存储的访问,同时保存自上次保存对象以来修改过的属性信息。上下文还能通过撤销管理器来注册所有更改,这意味着你可以撤销单个操作或会滚到上次保存的数据。
NSManagedObjectContext *context = [appDelegate managedObjectContext];
- 创建新的托管对象
NSManagedObject *thing = [NSEntityDescription insertNewObjectForEntityForName:@"Thing" inManagedObjectContext:context];
- 获取托管对象
NSFetchRequest *request = [[NSFetchRequest alloc] init];NSEntityDescription *entityDescr = [NSEntityDescription entityForName:@"Thing" inManagedObjectContext:context];[request setEntity:entityDescr];
也可以使用NSPredicate类为获取请求指定条件
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(name = %@)",nameString];[request setPredicate:pred];
创建了获取请求并为它提供实体描述之后,使用NSManagedObjectContext中的实例方法来执行请求:
NSError *error;NSArray *objexts = [context executeFetchRequest:request error:&error];if(objects == nil){ // 错误处理...}
0 0
- IOS------Core Data的基本使用
- iOS core Data 详解-<1>基本使用
- iOS Core Data的使用
- iOS Core Data的使用
- iOS学习笔记--Core Data的使用
- iOS软件开发 Core Data的使用
- iOS中Core Data的使用
- 【iOS】数据库Core Data的使用
- ios简单使用core data
- ios简单使用core data
- iOS-简单使用core data
- ios简单使用core data
- IOS中core data使用
- iOS Core Data框架使用
- iOS数据 - Core Data使用
- Core Data的使用
- Core Data的使用
- Core Data的使用
- 特殊乘法(C#)
- 搭建tomcat WEB服务器
- 从五个维度考察java代码质量
- 单例Toast
- pxe无人值守安装操作系统
- IOS------Core Data的基本使用
- source
- qq手机管家的一些想法
- 监控snmp协议
- zabbix监控工具
- Java线程同步:synchronized锁住的是代码还是对象
- 数据库查询优化
- HTTP请求状态码
- Real-time Multiple Objects Tracking with Occlusion Handling in Dynamic Scenes