2017-04-14 10 views
2

私はmany-to-manyという2つのエンティティとの関係を持っています。 1つはPerson、もう1つはClubsです。私は、すべてのPersonエンティティが特定のClubにあることを見つけるpredicateと書くことができるようにしたいと思います。また、その人の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 %@"'

は、私は、ここに任意のヘルプを間違って何かをやっている知っていますか?

+1

Personオブジェクト自体ではなく、属性を参照するためにSELFを使用してみてくださいとはるかに効率的です@ AND SELF IN%@ "、@" manager "、self.clubs.people]' – pbasdf

答えて

2

上記の@pbasdfで指摘されているように、selfを使用する必要があります。 `[NSPredicate predicateWithFormatは:@"の位置は、CONTAINS [CD]%ただし、クエリは、自己句最初すなわち

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

ありがとう!それはうまくいった! –

関連する問題