現在、CoreDataがEvent
というタイトルの特定のエンティティのすべての結果を正常に返しています。
NSManagedObjectContext *context = [delegate managedObjectContext];
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Event"
inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
NSError *error;
NSArray *fetchResults = [context executeFetchRequest:request error:&error];
Eventエンティティの1つのプロパティは、tid
というタイトルの文字列です。許可されているすべてのtid値を含む配列filterArray
もあります。
filterArray
の値の1つと一致するtidプロパティを持つイベントのみを返すようにCore Dataリクエストを取得するにはどうすればよいですか?答えはNSPredicateに関連していると思いますが、私はそれを自分の意志に曲げるにはまだ十分に精通していません。
これを試して:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"tid IN %@", filterArray];
[request setPredicate:predicate];
述語プログラミングガイド の 集計操作 をご覧ください。
[〜#〜]編集[〜#〜]
NSPredicate iPhone 3.2 SDKコアデータの「IN句」NSInvalidArgumentException例外 をご覧ください。それはあなたが持っているのと同じエラーです。問題は、列/属性名のタイプミスでした。構文は問題ないはずです。tid
だけを見つけることはできません。