Cómo configurar adecuadamente NSFetchedResultsController

Estoy colocando un NSFetchedResultsController en mi código, así que obtengo esa buena sección automática de mis datos de vista de tabla.

Así que estoy haciendo una prueba para asegurarme de que todo funcione correctamente. Tengo una única entidad de libro en mi tienda persistente. Primero realizaré la búsqueda de la manera anterior, luego intentaré usar NSFetchedResultsController. La diferencia entre los 2 bloques de código es solo 2 líneas.

Códigosin NSFetchedResultsController:

 NSFetchRequest *request = [[NSFetchRequest alloc] init];
 NSEntityDescription *entity = [NSEntityDescription entityForName:kBookEntityName inManagedObjectContext:self.managedObjectContext];
 [request setEntity:entity];

 NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:NO];
 NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
 [request setSortDescriptors:sortDescriptors];
 [sortDescriptor release];
 [sortDescriptors release];

  //The following 2 lines will be replaced by the NSFetchedResultsController
 NSMutableArray *mutableFetchResults = [[[self.managedObjectContext executeFetchRequest:request error:nil] mutableCopy] autorelease];
 Book *result = (Book*)[mutableFetchResults objectAtIndex:0];

 NSString* title = [result valueForKey:@"title"];
 NSString* priority = [result valueForKeyPath:@"priority.name"];


 [request release];

Ahora sustituyo en las líneas el NSFetchedResultsController:

NSFetchedResultsController* fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"title" cacheName:@"BookList"];                                                                                                                                                                                                                                                                                                           

Book *result = (Book*)[fetchedResultsController objectAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];

Parece bastante cortado y seco. El primer bloque de código recupera adecuadamente la única entidad Book. El código con el NSFetchedResultsController, sin embargo, no lo hace. En su lugar, devuelve cero.

Mi pregunta es: ¿Estoy configurando correctamente el NSFetchedResultsController en este ejemplo?

(nota, la propiedad fetchedObjects del NSFetchedResultsController también es nula)

Respuestas a la pregunta(2)

Su respuesta a la pregunta