Cocoa 预测关系

Cocoa 预测关系,cocoa,core-data,nspredicate,Cocoa,Core Data,Nspredicate,我正在尝试筛选显示员工的表列表的结果。一个过滤器应显示属于某个公司的每位员工(基于公司名称) 在核心数据中,实体公司与实体员工之间存在一对多关系 _fetchRequest = [[NSFetchRequest alloc] init]; [_fetchRequest setEntity:[NSEntityDescription entityForName:@"Employee" inManagedObjectContext:_moc]]; NSPredicate *employeeNameP

我正在尝试筛选显示员工的表列表的结果。一个过滤器应显示属于某个公司的每位员工(基于公司名称)

在核心数据中,实体公司与实体员工之间存在一对多关系

_fetchRequest = [[NSFetchRequest alloc] init];
[_fetchRequest setEntity:[NSEntityDescription entityForName:@"Employee" inManagedObjectContext:_moc]];

NSPredicate *employeeNamePredicate = [NSPredicate predicateWithFormat:@"name != %@",@"Bob"];
NSPredicate *employeeCompanyNamePredicate = [NSPredicate predicateWithFormat:@"company.name == %@",companyName];

NSArray *filters = @[employeeNamePredicate, employeeCompanyNamePredicate];

NSPredicate *compoundPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:filters];

[_fetchRequest setPredicate:compoundPredicate];

NSError *error = nil;
_filteredResult = [_moc executeFetchRequest:_fetchRequest error:&error];

但是什么也没发生@“company.name”似乎没有预期的效果。我做错了什么

我看不出你的代码中有明显的错误。你是完全没有得到结果还是得到了错误的结果?你能显示compoundPredicate的NSLog输出吗?哦,我犯了一个愚蠢的错误……代码工作正常。我应该对这个进行单元测试。。。谢谢