1

Ich begann heute, über den NSFetchedResultsController zu lesen, aber ich bin auf eine verwirrende Syntax gestoßen. Kann jemand bitte beschreiben, was die folgenden zwei Zeilen bedeuten? Insbesondere die id <something>NSFetchedResultsController - Neue Syntax?

id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section]; 

und

NSManagedObjectContext *context = <#Managed object context#>; 

Auch bestätigen Sie bitte mein Verständnis, dass die NSFetchedResultsController ist einfach eine Art von NSMutableArray aber mit zusätzlichen Funktionen (Delegat Nachrichten), die speziell für die Steuerung Core Data?

Antwort

1

id<PROTO> foo deklariert eine Variable foo, deren Typ ist "Zeiger auf Objekt entspricht Protokoll PROTO". Dies bedeutet, dass es nur in Ordnung ist, die Nachrichten im Protokoll PROTO an foo zu senden.

<#Managed Object Context#> ist nicht gültig Objective-C-Syntax. Es sagt nur, "kleben Sie den Code, um einen Bezug zu Ihrem MOC hier zu bekommen."

NSFetchedResultsController ist nicht verwandt mit NSMutableArray. Das einzige, was sie gemeinsam haben, ist, dass beide Zugang zu geordneten Sammlungen bieten. NSFetchedResultsController steht zwischen Ihnen und dem Kontext des verwalteten Objekts. Sein Inhalt wird durch den Kontext und die Abrufanforderung bestimmt, die beim Erstellen des abgerufenen Ergebniscontrollers bereitgestellt werden. Es vermittelt den Zugriff auf den MOC und verwendet wann immer möglich zwischengespeicherte Daten. Seine beabsichtigte Verwendung ist eine einfache Möglichkeit, Daten von Core Data in eine UITableView zu bekommen.

+1

Es ist auch erwähnenswert, dass FRC unterscheidet sich weiter von NSMutableArray in dem es mehrere Abschnitte unterstützt, mit dem Ergebnis, dass der Inhalt zugegriffen werden kann mit einem NSIndexPath über die Methode ItemAtIndexPath:. – NickFitz