NSPredicate按属性筛选核心数据关系NSSet
问题描述:
我有一个many-to-many
与两个实体的关系。一个是Person
,另一个是Clubs
。我希望能够编写一个predicate
,它将查找特定Club
中的所有Person
实体。我也想检查那个人的position
属性。NSPredicate按属性筛选核心数据关系NSSet
这里是不工作:
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];
这崩溃,出现错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "title CONTAINS[cd] %@ AND IN %@"'
我知道我错在这里做的事情,任何帮助吗?
答
正如@pbasdf上面指出的那样,您应该使用self。但是,查询会更具有自我条款第一即
[NSPredicate predicateWithFormat:@"SELF IN %@ AND position CONTAINS[cd] %@", self.clubs.people, @"manager"];
+0
谢谢!这工作! –
尝试使用自指Person对象本身,而不是一个属性更高效:'[NSPredicate predicateWithFormat:@“的位置包含:[CD]% @ AND SELF IN%@“,@”manager“,self.clubs.people]' – pbasdf