mit NSPredicate enthält zu finden, die Zeichen innerhalb einer coredata-Entität-Feld

Ich versuche zu finden alle Kunden, die eine bestimmte Folge von Buchstaben. Ich möchte die gleiche Funktionalität zu NSString ist rangeofString außer Fall insensative. Hier ist meine Methode:

-(NSArray *) db_search: (NSString *) table where: (NSString*) fieldKey contains: (NSString*) value withSortField: (NSString *) sortField{
    NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
    NSEntityDescription *entity = [NSEntityDescription entityForName:table inManagedObjectContext:context];
    if (fieldKey != nil){
        NSPredicate *predicate = [NSPredicate
                                  predicateWithFormat:@"(%@ contains[c] %@)",
                                  fieldKey,value];
        [request setPredicate:predicate];
    }
    [request setEntity:entity];

    if (sortField != nil){
        NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:[self extractSortField:sortField] ascending:[self isAscending:sortField]] autorelease];
        NSArray *sortDescriptors = [[[NSArray alloc] initWithObjects:sortDescriptor, nil] autorelease];
        [request setSortDescriptors:sortDescriptors];
    }

    NSError *error;
    return [context executeFetchRequest:request error:&error];
}

Nenne ich es mit diesen Werten:

NSArray * results = [self db_search:@"Customer" where:@"fullname" contains:@"matt" withSortField:nil];

Anstatt alle Matts, Matthews, etc, es friert ein, wenn ich versuche, drucken Sie die Ergebnisse. Ich gedebuggt, und wir bekommen nicht einmal eine leere NSArray zurück. Ich drucken Sie das NSArray auf die Konsole und ich bekomme nicht 0 Elemente.. bekomme ich nur nichts.

Ich habe versucht dabei einen dump der DB zu der Konsole und es enthält alle die richtigen Dinge in der it. HILFE!!!!!

=UPDATE======================================================

Ich bin mit %K und ich bin immer eine seltsame Laufzeitfehler:

if (searchResults1 != nil){
    NSLog(@"%Matches: %i", [searchResults1 count]);
}else {
    NSLog(@"Was NULL");
}

Seine auf der NSLog(@"%Übereinstimmt: der Linie. Seine SCHLECHTE EXC Fehler. So searchResults1 ist nicht nill aber es stürzt ab, wenn ich versuche zu Lesen, die zählen? Wenn ich debug, searchResults1 ist in der Tat ein NSArray, aber es scheint nicht zu haben, nichts drin.

InformationsquelleAutor Mike S | 2011-03-17
Schreibe einen Kommentar