以前の投稿で述語を作成しようとしましたが、3時間後には機能させることができなかったため、この方法で作成することになりました。
より効果的な方法が必要だと感じています。また、述語で大文字と小文字を区別しないようにする必要があります。
10,000台の車タイヤ、ホイール、シートを3つの車の部品として持っています。タイヤを持っているすべての車を見つけたいです。次に、ホイールが付いているすべての車を見つけたいと思います。次に、座席のあるすべての車を見つけたいと思います。(私は多くが重複することを知っていますが、それが私が必要としているものです)
もっと効果的な方法があれば教えてください。また、述語の大文字と小文字を区別しないようにする方法を教えてください。
前もって感謝します!
-(NSArray*) loadCarsFromCoreData:(NSMutableArray*)inputCarParts{
NSMutableArray *totalResults=[[NSMutableArray alloc]init];
NSFetchRequest *fetchRequest =[[NSFetchRequest alloc]init];
//To find the cars we are using the car parts
NSEntityDescription *entity = [NSEntityDescription entityForName:@"CarParts" inManagedObjectContext:[self managedObjectContext]];
[fetchRequest setEntity:entity];
NSError *error;
NSMutableArray *predicates =[self parseCarPartsIntoAPredicateArray:inputCarParts];
for (int i=0; i<[predicates count]; i++) {
[fetchRequest setPredicate:[predicates objectAtIndex:i]];
NSArray *records = [[self managedObjectContext] executeFetchRequest:fetchRequest error:&error];
NSLog(@"results = %i",[records count]);
[totalResults addObjectsFromArray:records];
}
NSLog(@"results = %i",[totalResults count]);
return [NSArray arrayWithArray:totalResults];
}
-(NSMutableArray*)parseCarPartsIntoAPredicateArray:(NSMutableArray*)inputCarParts{
NSMutableArray *returnArray=[[NSMutableArray alloc]init];
for (int i=0; i<[inputCarParts count]; i++) {
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"partName == %@",[inputCarParts objectAtIndex:i]];
[returnArray addObject:predicate];
}
return returnArray;
}