NSPredicate按属性过滤核心数据关系NSSet

时间:2017-04-14 20:35:42

标签: ios objective-c core-data nspredicate

我与两个实体有many-to-many的关系。一个是Person,另一个是Clubs。我希望能够编写一个predicate来查找特定Person中的所有Club个实体。我还想检查该人的position属性。

以下是没有工作的事情:

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext]];
[request setPredicate:[NSPredicate predicateWithFormat:@"position CONTAINS[cd] %@ AND IN %@", @"manager", self.clubs.people]];
NSArray *results = [self.managedObjectContext executeFetchRequest:request error:nil];

崩溃时出现错误:

  

由于未捕获的异常而终止应用   ' NSInvalidArgumentException',原因:'无法解析格式   string" title CONTAINS [cd]%@ AND IN%@"'

我知道我在这里做错了什么,有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

正如上面@pbasdf指出的,你应该使用self。但是,首先使用self子句,查询效率会更高,即

[NSPredicate predicateWithFormat:@"SELF IN %@ AND position CONTAINS[cd] %@", self.clubs.people, @"manager"];
相关问题