标签:
Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何SQL语句
1.创建项目的时候勾选Use the CoreData
2.创建好之后就会在左边的文件名那里看到一个CoreData.xcdatamodeldde文件
3.点击之后在Xcode的中间可以看到它的内容,之后点击左下角的Add Entity可以添加表(表名可以修改,但首字母必须大写)
4.在表里面添加属性
5.创建表的数据模型
(1)点击New File
(2)点击next
(3)点击next
(4)要创建哪个表的数据模型就勾选哪一个,然后点击next
// 读取coreData
// 1、读取managedObjectModel
// 2、找到里面所有实体的名字[model entitiesByName]
// 3、找到要读取的实体NSEntityDescription *entry = entryDic[@"UserInfo"];
// 4、初始化 查询对象 NSFetchRequest *request = [[NSFetchRequest alloc]init];
// 5、通过上下文 查找 NSArray *list = [context executeFetchRequest:request error:nil];
1 NSManagedObjectContext *context = [[AppDelegate appDelegate] managedObjectContext]; 2 3 4 5 // 1、读取managedObjectModel 6 7 NSManagedObjectModel *model = [[AppDelegate appDelegate] managedObjectModel]; 8 9 // 2、找到里面所有实体的名字[model entitiesByName] 10 11 NSDictionary *entitiesDic = [model entitiesByName]; 12 13 // 3、找到要读取的实体NSEntityDescription *entry = entryDic[@"UserInfo"]; 14 15 NSEntityDescription *entity = entitiesDic[@"Userinfo"]; 16 17 // 4、初始化 查询请求对象 NSFetchRequest 18 19 NSFetchRequest *request = [[NSFetchRequest alloc]init]; 20 21 request.entity = entity; 22 23 // request.predicate 24 25 // request.fetchLimit 26 27 // request.fetchOffset 28 29 30 31 // 5、通过上下文开始查询 32 33 aList = [context executeFetchRequest:request error:nil]; 34 35 NSLog(@"%@",aList); 36 37 38 39 if (aList.count!=0) { 40 41 [MytableView reloadData]; 42 43 // [MytableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation: UITableViewRowAnimationNone]; 44 45 } 46 47 48 49
注:appDelegate这个方法是在AppDelegate文件里面定义的,在.h文件声明
+(AppDelegate *)appDelegate;
在.m文件实现
+(AppDelegate *)appDelegate{ return (AppDelegate *)[UIApplication sharedApplication].delegate; }
操作coreData
1、不管增删改查都需要先初始化 上下文[app managedObjectContext]
2、插入具体内容到上下文
+ (id)insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context;
3、保存 saveContext
- (void)addEntity{ NSManagedObjectContext * conText = [[AppDelegate appDelegate]managedObjectContext]; Massage * massage = [NSEntityDescription insertNewObjectForEntityForName:@"Massage" inManagedObjectContext:conText]; [massage setValue:postView.titleTextFild.text forKey:@"title"]; [massage setValue:postView.contentTextFild.text forKey:@"content"]; Userinfo *userinfo = [NSEntityDescription insertNewObjectForEntityForName:@"Userinfo" inManagedObjectContext:conText]; NSArray * List = @[@"陈3.jpg",@"陈2.jpg",@"是1.jpg",@"是3.jpg"]; int arc = arc4random()%List.count; UIImage *img = [UIImage imageNamed:List[arc] ]; [userinfo setValue:@"hehehe" forKey:@"name"]; [userinfo setValue:@(11) forKey:@"age"]; [userinfo setValue:UIImageJPEGRepresentation(img, 1) forKey:@"headImage"]; [userinfo setValue:massage forKey:@"massage"]; [[AppDelegate appDelegate] saveContext]; }
标签:
原文地址:http://www.cnblogs.com/popper123/p/4857405.html