So habe ich den folgenden Code für alle meine Kerndatenelemente genannt EinstellungenfetchedResultsController Best Practices für Unternehmen mit Prädikat bekommen
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController_ != nil) {
return fetchedResultsController_;
}
/*
Set up the fetched results controller.
*/
// Create the fetch request for the entity.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// Edit the entity name as appropriate.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Setting" inManagedObjectContext:self.managedObjectContext_];
[fetchRequest setEntity:entity];
[fetchRequest setReturnsObjectsAsFaults:NO];
[fetchRequest setResultType:NSManagedObjectResultType];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"serviceName" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
// Edit the section name key path and cache name if appropriate.
// nil for section name key path means "no sections".
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext_ sectionNameKeyPath:nil cacheName:nil];
aFetchedResultsController.delegate = self;
self.fetchedResultsController_ = aFetchedResultsController;
[aFetchedResultsController release];
[fetchRequest release];
return fetchedResultsController_;
}
Ich habe eine Eigenschaft NSFetchedResultsController *fetchedResultsController
holen und ich habe es therough der App via:
[self.fetchedResultsController_ fetchedObjects]
Die Frage ist, ich mit einer bestimmten Eigenschaft Einheiten abrufen möchten, das heißt: mit einem Prädikat:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K == %@", @"settingName", somesettingName];
[fetchRequest setPredicate:predicate];
Die Frage ist, sollte ich eine neue fetchResultsControllerWithServiceName: (NSString *) serviceName
erstellen oder sollte ich nur die vorhandene Methode verwenden? Was ist die beste Vorgehensweise dafür?
Also sagen Sie, um eine Methode zu erstellen, nur das Prädikat setzen und dann performFetch erneut aufrufen? – xonegirlz
Ja, das sollte ausreichen. – warrenm
Was ist, wenn ich nun die abgerufenenObjekte ohne das Prädikat-Set nach dem Aufruf dieser Funktion erhalten möchte? Ich müsste im Grunde das Prädikat (self.fetchedResultsController.fetchRequest setPredicate: nil) des NSFetchRequest rechts nach diesem Eintrag richtig? – xonegirlz