Frage

Ich habe einen fetchedResultsController, die alle Datensätze für meine Entität „Konto“ zurückgekehrt ist.

Ich möchte schnell alle Kontoaufzeichnungen für das Attribut „nachName“ == Wert suchen, geben Sie mir das Konto Objekt zurück, oder zumindest die indexPath des Objekts in der fetchedResultsController. Es gibt nur 1 sein sollte Objekt zurückgegeben.

Anders als Iterierte durch jeden objectAtIndexPath, gibt es einen besseren Weg, um die fetchController mit NSPredicate?

suchen
War es hilfreich?

Lösung

mootymoots, filtern, dass nur die abgerufenen Objekte mit einem anderen Prädikat ...

NSPredicate *lastNameMatch = ...
NSArray *matchingFetchedObjects = [fetchedResultsController.fetchedObjects filteredArrayUsingPredicate:lastNameMatch];

Das Blatt Ihrer fetchedResultsController Ergebnisse un-verändert, sondern gibt Ihnen einen Array mit einem Spiel für den Nachnamen Prädikat.

Andere Tipps

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// set up fetch request
...
NSPredicate *requestPredicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"(lastName like '%@')", self.lastName]];
[fetchRequest setPredicate:requestPredicate];
...
// perform fetch
NSError *error = nil;
if (![self.fetchedResultsController performFetch:&error]) { 
    // handle error...
}

...

Account *uniqueAccount = [[self.fetchedResultsController fetchedObjects] anyObject]; // assuming lastName attribute is unique
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top