核心数据表关系和Fetchrequest

时间:2014-04-22 05:32:05

标签: ios objective-c core-data nsfetchrequest

我正在使用故事板和核心数据开发一个iPad应用程序。我对核心数据没有好感。我有2个表名A和B.表a有2个字段,名称为datacode和price.In表B有两个名称为itemcode和text的字段。表A已设置限制。

表A

datacode价格

p1 10

m1 17

p0 28

m3 20

w4 12

表B

项目代码文字

p0车

p1巴士

m2 pen

m1球

禁止

r1 book

m3铅笔

n1 tv

w4电台

tableB中itemcode中的值是表A中的数据代码+其他一些值。我需要根据表格中的数据代码对应的项目代码从tableB中获取文本值我该如何获取来自B的文本基于此标准。

2 个答案:

答案 0 :(得分:0)

您需要将表A的数据代码与表B的项代码一起使用谓词,如下所示:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *aEntity = [NSEntityDescription entityForName:@"TableA" inManagedObjectContext:moc];
[fetchRequest setEntity:BEntity];

NSArray* fetchResults = [moc executeFetchRequest:fetchRequest error:nil];

您将获得TableA的所有对象。因此,如果您与TableB有一对一的关系,您可以直接访问所有属性,如:

TableA *tableAObject = fetchResults[i];
NSString * itemcode = tableAObject.tableBRelation.itemcode

答案 1 :(得分:0)

首先,您需要在表A和表B之间创建关系。 之后你必须根据你的关系来获取记录..... 你会像这样获取你的记录......

NSMutableArray *arrObj = [[NSMutableArray alloc]init];
for(TableB *tblObj in [TableAObj relationWithTblB]){
      [arrObj addObject:tblObj];
}
NSLog(@"Your records related with tableA = %@",arrObj);