Ios NSPredicate按属性筛选核心数据关系NSSet

Ios NSPredicate按属性筛选核心数据关系NSSet,ios,objective-c,core-data,nspredicate,Ios,Objective C,Core Data,Nspredicate,我与两个实体有多对多关系。一个是人,另一个是俱乐部。我希望能够编写一个谓词,该谓词将查找特定俱乐部中的所有个人实体。我还想检查那个人的位置属性 以下是不起作用的内容: NSFetchRequest *request = [[NSFetchRequest alloc] init]; [request setEntity:[NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectCont

我与两个实体有
多对多
关系。一个是
,另一个是
俱乐部
。我希望能够编写一个
谓词
,该谓词将查找特定
俱乐部中的所有
个人
实体。我还想检查那个人的
位置
属性

以下是不起作用的内容:

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',原因:'无法分析格式 字符串“标题包含[cd]@和%@”


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

正如上面@pbasdf所指出的,你应该使用self。但是,如果先使用self子句,查询将更加高效

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

尝试使用SELF来引用Person对象本身,而不是属性:
[NSPredicate predicateWithFormat:@“position CONTAINS[cd]@和SELF IN%@、@“manager”、SELF.clubs.people]