Erstellen von Tabellen Abschnitte mit NSFetchedResultsController
Ich bin mit NSFetchedResultsController
zu fahren, die Daten für meine UITableViewController
. Eine vereinfachte version des verwalteten Objekts, ich bin das Holen der sieht so aus (als Beispiel):
Person:
-(BOOL)hasPet;
-(BOOL)hasDog;
Grundsätzlich möchte ich meine Tabelle nur die Person
Objekte, die ein Haustier haben. Also das ist einfach, ich kann ein Prädikat. Nun, für diejenigen, die hasPet == YES
ich wollen, legen Sie in der Tabelle in 2 Abschnitten, der erste Abschnitt hasDog == YES
, und die zweite ist hasDog == NO
. Dies ist, wo ich bin ein wenig verschwommen. Hier ist, wo ich bei der Konfiguration meine Ergebnisse-controller, hoffentlich kann mir jemand helfen, lenken mich in die richtige Richtung.
- (NSFetchedResultsController *)fetchedResultsController {
if (nil != fetchedResultsController) {
return fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Homework" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"hasPet == %@", [NSNumber numberWithBool:YES]];
[fetchRequest setPredicate:predicate];
NSSortDescriptor *dogDescriptor = [[NSSortDescriptor alloc] initWithKey:@"hasDog" ascending:YES];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:dogDescriptor, sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *aController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:nil];
aController.delegate = self;
self.fetchedResultsController = aController;
//Release things
return fetchedResultsController;
}
Ist eine Art descriptor wo muss ich meine Aufmerksamkeit?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist einfach! Geben Sie einfach den NSFetchedResultsController mit einem
sectionNameKeyPath
(in diesem Fall wärehasDog
) in der Initialisierung.Die einen VORBEHALT zu dieser, jedoch, ist der Abschnitt Namen
0
&1
jeweils, aber es ist leicht heilbar.