iPhone - 核心数据 - 根据另一个实体的关系从一个实体获取对象

时间:2011-09-03 17:04:21

标签: iphone core-data

我有两个核心数据实体。让我们称他们为AAABBB

BBB包含与AAA的关系,一对一。

当我创建新的BBB条目时,我(此时myAAAA上的一个条目):

BBB *item = nil;
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = [NSEntityDescription entityForName:@"BBB" inManagedObjectContext:context];

request.predicate = [NSPredicate predicateWithFormat:@"(relation == %@)", myA];

NSError *error = nil;
item = [[context executeFetchRequest:request error:&error] lastObject];
[request release];

if (!error && !umItem) {  // if there's no item, create a new one
    item = [NSEntityDescription insertNewObjectForEntityForName:@"BBB" inManagedObjectContext:context];
    item.relation = myA;  // to create a relation from BBB to AAA
}

在某个时间点,我只有一个BBB个对象的列表。请记住,每个BBB对象都有一个名为relation的属性,指向AAA

现在,如何检索AAA

是否足够

AAA *myAAA = (AAA*)myBBB.relation;

这个relation对象本身是AAA吗?

我该怎么做? 感谢

1 个答案:

答案 0 :(得分:1)

是的,通过致电myBBB.relation;(如果relation类型为AAA,则无需动态输入),您将获得课程AAAnil的对象。如果relation不是可选的,那么在committing更改之前,您应该定义与所有更新/新对象的关系。