No se llama a la clasificación personalizada NSFetchedResultsController

Actualmente estoy tratando de completar un UITableView en mi proyecto desde Core Data usando NSFetchedResultsController. Estoy usando una búsqueda personalizada con un comparador (aunque también probé un selector y tuve un problema idéntico):

    if (fetchedResultsController != nil) {
        return fetchedResultsController;
    }

    /*
     Set up the fetched results controller.
    */
    // Create the fetch request for the entity.
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    // Edit the entity name as appropriate.
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Object" inManagedObjectContext:self.managedObjectContext];
    [fetchRequest setEntity:entity];

    // Set the batch size to a suitable number.
    [fetchRequest setFetchBatchSize:20];
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"objectName" ascending:YES comparator:^(id s1, id s2) {
            NSLog(@"Comparator");
      //custom compare here with print statement
    }];
    NSLog(@"Sort Descriptor Set");
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Object" inManagedObjectContext:self.managedObjectContext];
    [fetchRequest setEntity:entity];
    [fetchRequest setSortDescriptors:sortDescriptors];

    NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"firstLetterOfObject" cacheName:@"Objects"];
    [aFetchedResultsController release];
    [fetchRequest release];
    [sortDescriptor release];
    [sortDescriptors release];
    if (![fetchedResultsController performFetch:&error]) {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }

    return fetchedResultsController;

Cuando entro en esta pestaña, he iniciado sesión en todo el programa y descubrí que NSFetchedResultsController ni siquiera ingresa el bloque de comparación al buscar. En su lugar, lo ordena con algún método de clasificación predeterminado.

Sin embargo, si elimino y agrego un objeto con un objectName, entonces ingresa el bloque comparador y ordena correctamente la tabla.

¿Por qué NSFetchedResultsController no ordena usando el comparador hasta que se cambia el modelo de objeto administrado?

Notas: He intentado también desactivar el almacenamiento en caché y / o realizar una búsqueda en viewDidLoad :, pero parece que cuántas veces busco no importa, pero cuándo. Por alguna razón, solo usa mi clasificación después de que se ha cambiado el modelo de objeto.

Respuestas a la pregunta(3)

Su respuesta a la pregunta