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?

InformationsquelleAutor jbrennan | 2009-08-21
Schreibe einen Kommentar