CoreData两个表通过属性关联

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值