第一次构建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];
我究竟做错了什么?