苹果开发 笔记(17)
来源:互联网 发布:永暑礁 知乎 编辑:程序博客网 时间:2024/04/29 09:05
昨天看了一个关于coreData视频,用了一下coreData的里面API,大概深入的地方还没有,只是简单的涉及到一些操作。视频讲述到是如何将oc的对象转换数据保存到数据库当中。同理也反过来 还原里面的对象。coreData 提供了一种对象存储和读取的技术。 用它可以保存我们的数据,程序关闭后,再打开数据还依旧存在。这种持久化的存储解决方案,非常有用。(据说网易新闻客户端也采用有这个方法去处理一些数据)
查看 coreData的pdf
第一次在创建项目 ,勾选 coreData 的选项会生成一些coredata 的相关的API 类。这些类会记录在代理那里。从代理那里找到获取到
NSManagedObjectContext 的上下文。想起这个上下文,包括绘图也有类似。先获取到对应的类,下面就可以做出相应的事情。例如一个是创建的动作,一个获取的动作,一个执行的动作的请求,执行动作
NSEntityDescription(描述实体)
NSManagedObject(实体对象,类似NSDictionary)
NSFetchRequest(请求相关 查询到数据)
-(void) addData:(NSString *) msg{ //1.拿到代理 AppDelegate *appDelegate = (AppDelegate*) [UIApplication sharedApplication].delegate; //2.获取管理对象上下文 NSManagedObjectContext *objContext = appDelegate.managedObjectContext; //3建立一个表 NSEntityDescription *entity =[NSEntityDescription entityForName:@"Book" inManagedObjectContext:objContext]; NSManagedObject *book =[[NSManagedObject alloc]initWithEntity:entity insertIntoManagedObjectContext:objContext]; //4保存值 [book setValue:msg forKey:@"name"]; NSError *error; BOOL isOk = [objContext save:&error]; if (!isOk) { NSLog(@"保存失败"); } [self.persons addObject:book]; [self.tableView reloadData];}
-(void) getData{ //1.拿到代理 AppDelegate *appDelegate = (AppDelegate*) [UIApplication sharedApplication].delegate; //2.获取管理对象上下文 NSManagedObjectContext *objContext = appDelegate.managedObjectContext; NSFetchRequest *request = [[NSFetchRequest alloc]initWithEntityName:@"Book"]; NSError *error; NSArray *result = [objContext executeFetchRequest:request error:&error];//执行请求 if (result) { NSLog(@"读取数据内容%@",result); self.persons = [result mutableCopy]; [self.tableView reloadData]; } else { self.persons = [[NSMutableArray alloc]init]; }}
0 0
- 苹果开发 笔记(17)
- 苹果开发 笔记(1)
- 苹果开发 笔记(2)
- 苹果开发 笔记(3)
- 苹果开发 笔记(4)
- 苹果开发 笔记(9)
- 苹果开发 笔记(10)
- 苹果开发 笔记(13)
- 苹果开发 笔记(14)
- 苹果开发 笔记(15)
- 苹果开发 笔记(16)
- 苹果开发 笔记(18)
- 苹果开发 笔记(19)
- 苹果开发 笔记(20)
- 苹果开发 笔记(21)
- 苹果开发 笔记(22)
- 苹果开发 笔记(23)
- 苹果开发 笔记(24)
- PCIe总线学习笔记(一、PCI基础知识简介)
- 好的资料库
- poj 1862 Stripies
- 分析一个Java Class文件
- B. School Marks (CF #301 (Div. 2))
- 苹果开发 笔记(17)
- Android视频播放项目总结之 使用第三方Vitamio库,开发万能播放器(四)
- 重载运算符
- poj 1338 Ugly Numbers
- Android学习笔记——关于onConfigurationChanged
- 多人协作慎用Storyboard
- Activity、Service生命周期的理解
- 2013第四届
- ubuntu14.04LTS安装完成后需要安装的