Core Data 多表连接及查询

一:先建议两张表

  1. Person,Score 分别代表,学生表,分数表
  2. 在 Person的Relationships里面建立关系,指向分数score

二:coreData生成的两个表:

     Person

    

复制代码
@class Score;

@interface Person : NSManagedObject

@property (nonatomic, retain) NSString * address;
@property (nonatomic, retain) NSNumber * age;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) Score *score;

@end
复制代码

  Score

复制代码
@interface Score : NSManagedObject

@property (nonatomic, retain) NSNumber * dotNet;
@property (nonatomic, retain) NSNumber * java;
@property (nonatomic, retain) NSNumber * php;

@end
复制代码

三:添加记录查询记录代码

复制代码
- (void)addTheRowData
{
    Person *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:self.appDelegate.managedObjectContext];
    person.name = @"李四";
    person.age = [NSNumber numberWithInt:20];
    person.address = @"中国济南";
    
    Score *score = [NSEntityDescription insertNewObjectForEntityForName:@"Score" inManagedObjectContext:self.appDelegate.managedObjectContext];
    score.dotNet = [NSNumber numberWithFloat:70.77];
    score.php = [NSNumber numberWithFloat:80.88];
    score.java = [NSNumber numberWithFloat:90.99];
    
    person.score = score;
    //score.person = person;
    
    
    [self.appDelegate saveContext];
    
}

- (void)showTheTableData
{
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]initWithEntityName:@"Person"];
    NSError *error;
    NSArray *fetchedObjects = [self.appDelegate.managedObjectContext executeFetchRequest:fetchRequest error:&error];
    for (Person *info in fetchedObjects) {
        //Score *score = info.score;
        NSLog(@"name:%@ age:%@ address:%@ --- dotNet:%@ java:%@ php:%@", info.name,info.age,info.address,info.score.dotNet,info.score.java,info.score.php);
    }
    
    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值