2010-11-18 18 views
1

J'ai commencé à lire sur le NSFetchedResultsController aujourd'hui, mais j'ai rencontré une syntaxe confuse, quelqu'un peut-il décrire ce que les deux lignes suivantes signifient? Plus précisément, le id <something>NSFetchedResultsController - Nouvelle syntaxe?

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

et

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

En outre, s'il vous plaît confirmer ma compréhension que le NSFetchedResultsController est tout simplement une sorte de NSMutableArray mais avec des fonctionnalités supplémentaires (messages délégué) spécifiquement pour le contrôle de base de données?

Répondre

1

id<PROTO> foo déclare une variable foo dont le type est "pointeur vers un objet conforme au protocole PROTO". Cela signifie qu'il est seulement correct d'envoyer les messages dans le protocole PROTO à foo.

<#Managed Object Context#> n'est pas une syntaxe Objective-C valide. C'est juste de dire, "coller le code pour obtenir une référence à votre MOC ici."

NSFetchedResultsController n'est pas associée à NSMutableArray. La seule chose qu'ils ont en commun est que tous deux donnent accès à des collections ordonnées. NSFetchedResultsController se situe entre vous et le contexte d'objet géré. Son contenu est déterminé par ce qui est dans le contexte et la requête d'extraction est fournie lorsque le contrôleur de résultats récupérés est créé. Il médiatise l'accès au MOC et utilise des données mises en cache chaque fois que cela est possible. Son utilisation prévue est un moyen facile d'obtenir des données à partir des données de base dans un UITableView.

+1

Il convient également de noter que FRC diffère de NSMutableArray en ce qu'il prend en charge plusieurs sections, ce qui permet d'accéder à son contenu à l'aide d'un NSIndexPath via la méthode itemAtIndexPath :. – NickFitz