effektivste Suchmethode mit der Anweisung NSPredicate OR

Ich habe in einem früheren Beitrag versucht, ein Prädikat zu erstellen, habe es aber letztendlich so gemacht, weil ich es nach 3 Stunden nicht zum Laufen gebracht habe.

Ich habe das Gefühl, dass es einen effektiveren Weg geben muss, außerdem müssen die Prädikate nicht zwischen Groß- und Kleinschreibung unterschieden werden.

10.000 Autos Ich habe einen Reifen, ein Rad und einen Sitz als drei Autoteile. Ich möchte alle Autos finden, die einen Reifen haben. DANN möchte ich alle Autos finden, die ein Rad haben. DANN möchte ich alle Autos finden, die einen Sitz haben. (Ich weiß, dass viele Duplikate sein werden, aber das ist was ich brauche)

Bitte lassen Sie mich wissen, ob es einen effektiveren Weg gibt. Bitte lassen Sie mich auch wissen, wie die Groß- und Kleinschreibung der Prädikate ignoriert werden kann.

Danke im Voraus!

-(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;
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage