を初めて構築しNSPredicate
ます。
managedobjectcontext
このロジックを使用して検索したいと思います。
Search for a, grab all matches
Search for b, grab all matches, etc....
Nsarray *results = (has all a results, b results, etc);
私の試みた述語は次のとおりです。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name== %@ OR name == %@ OR name == %@",a,b,c];
ただし、これでエラーが発生しますpredicate
...
編集:私が書いたサンプルメソッド
-(NSPredicate*)parsePartsIntoAPredicate:(NSMutableArray*)inputPartsNames{
NSSet *keys=[NSSet setWithArray:inputPartsNames];
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"any self.@name in %@", keys];
NSLog(@"predicate = %@",predicate);
return predicate;
}
明確化: 車のデータベース (20,000 台) があります。各車には複数の部品があります。パーツ a を持つすべての車、パーツ b を持つすべての車、パーツ c を持つすべての車を検索したいと考えています。次に、パーツ a、b、c などの車の配列を返したいと思います...
より良い方法があると思われる場合はお知らせください。ただし、私はこれに逆行しています。私は言っています
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Cars" inManagedObjectContext:[self managedObjectContext]];
[fetchRequest setEntity:entity];
[fetchRequest setPredicate:[self parsePartsIntoAPredicate:inputParts]];
NSError *error;
NSArray *records = [[self managedObjectContext] executeFetchRequest:fetchRequest error:&error];
私は何を間違っていますか?