NSPredicate有三个实体

时间:2014-01-07 00:02:10

标签: cocoa nspredicate fetch

我在模型图中有3个实体(https://dl.dropboxusercontent.com/u/2669769/model.png):

公司< - >>人<< - >作用

我想从选定的公司中检索具有其角色的员工列表,但我的谓词似乎不完整。有什么建议吗?

NSEntityDescription *entity = [NSEntityDescription entityForName:@“Person” inManagedObjectContext:self.managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];

request.predicate = [NSPredicate predicateWithFormat:@"self in %@",[selectedCompany employee]];
[request setEntity:entity];
request.resultType = NSDictionaryResultType;

NSError *error;
NSArray *fetchedObjects = [_managedObjectContext executeFetchRequest:request error:&error];

NSLog(@"%@",[fetchedObjects valueForKey:@“firstName”]); // OK
NSLog(@"%@",[fetchedObjects valueForKey:@“inRole.name”]); // NULL!!!

1 个答案:

答案 0 :(得分:0)

获取请求中的NSDictionaryResultType不允许多对多关系。这就是您的词典中没有填充inRole.name的原因。