CoreData两个表通过属性关联

来源:互联网 发布:mac apache配置 编辑:程序博客网 时间:2024/05/29 04:03

1:一个人有1辆车

//0.获取AppDelegate的对象    AppDelegate *app = [UIApplication sharedApplication].delegate;   //1.插入一条数据   //[两个表]一对1   一个人有1辆车    People *p = [NSEntityDescription insertNewObjectForEntityForName:@"People" inManagedObjectContext:app.managedObjectContext];    p.name = @"zs";     Car *car = [NSEntityDescription insertNewObjectForEntityForName:@"Car" inManagedObjectContext:app.managedObjectContext];    p.car =car;    car.name = @"lisi";    [app saveContext];////保存数据    //2.查询数据    //(1)创建请求    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"People"];    //(2)查询结果    NSArray *resultArray = [app.managedObjectContext executeFetchRequest:request error:nil];    [resultArray enumerateObjectsUsingBlock:^(People *p, NSUInteger idx, BOOL *stop) {        NSLog(@"p.name=%@     p.car.name=%@",p.name,p.car.name);    }];

2:一个人拥有多辆车
这里写图片描述

//1.插入一条数据    People *p = [NSEntityDescription insertNewObjectForEntityForName:@"People" inManagedObjectContext:app.managedObjectContext];    p.name =@"狗蛋";    Car *car1 = [NSEntityDescription insertNewObjectForEntityForName:@"Car" inManagedObjectContext:app.managedObjectContext];    car1.name = @"00000";    Car *car2 = [NSEntityDescription insertNewObjectForEntityForName:@"Car" inManagedObjectContext:app.managedObjectContext];    car2.name = @"BMW";    Car *car3 = [NSEntityDescription insertNewObjectForEntityForName:@"Car" inManagedObjectContext:app.managedObjectContext];    car3.name = @"QQ";    Car *car4 = [NSEntityDescription insertNewObjectForEntityForName:@"Car" inManagedObjectContext:app.managedObjectContext];    car4.name = @"MSLD";    Car *car5 = [NSEntityDescription insertNewObjectForEntityForName:@"Car" inManagedObjectContext:app.managedObjectContext];    car5.name = @"LBJL";       //[两个表]一对多   一个人有多辆车    [p addCarObject:car1];    [p addCar:[NSSet setWithObject:car2]];    [p addCar:[NSSet setWithObjects:car3,car4,car5, nil]];    [app saveContext];    //2.查询数据    //(1)创建请求    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"People"];    //(2)查询结果    NSArray *resultArray = [app.managedObjectContext executeFetchRequest:request error:nil];    [resultArray enumerateObjectsUsingBlock:^(People *p, NSUInteger idx, BOOL *stop) {        NSLog(@"..........%@ ",p.name);        for (Car *car in p.car) {            NSLog(@"人car.name=.........%@",car.name);        }    }];    People *pp = [resultArray lastObject];    for (Car *car in pp.car) {        NSLog(@"最后一个人car.name=.........%@",car.name);    }

3:相互一一对应

 AppDelegate *app = [UIApplication sharedApplication].delegate;    //1.插入一条数据    People *p = [NSEntityDescription insertNewObjectForEntityForName:@"People" inManagedObjectContext:app.managedObjectContext];    p.name =@"狗剩";    Car *car = [NSEntityDescription insertNewObjectForEntityForName:@"Car" inManagedObjectContext:app.managedObjectContext];    car.name = @"Benz";      //一一对应关系    p.car = car;    car.people = p;    [app saveContext];    //2.查询    NSFetchRequest *req = [NSFetchRequest fetchRequestWithEntityName:@"People"];    NSArray *array = [app.managedObjectContext executeFetchRequest:req error:nil];    People *pp = [array lastObject];    NSLog(@"1...%@ 2>>>>>>>>>>>>>>>>>>>>>>>>>%@",pp.name,pp.car);    /*     1...狗剩      2>>>>>>>>>>>>>>>>>>>>>>>>><Car: 0x7fa5c2c604d0> (entity: Car; id: 0xd000000000140000 <x-coredata://A0E5E48F-0A5C-4E1C-AA48-DC75D34B3C27/Car/p5> ; data: {     name = Benz;     people = "0xd000000000140002 <x-coredata://A0E5E48F-0A5C-4E1C-AA48-DC75D34B3C27/People/p5>";     })*/
0 0
原创粉丝点击