Datos principales: Keypath "objectID" no encontrado en la entidad

Estoy usandoNSFetchedResultsController con un predicado para cargar una lista deDocuments en mi solicitud Quiero cargar todo elDocuments excepto el actualmente activo.

Estoy usando RentzschMOGenerator para crear un_Document clase y luego puse todo mi código personalizado en elDocument subclase_Document genera unobjectID propiedad con tipoDocumentID.

En la clase que crea el controlador, configuro el controladorcurrentDocID propiedad:

controller.currentDocID = self.document.objectID;

En el controlador en sí, cargué lentamente el fetchedResultsController de esta manera:

- (NSFetchedResultsController *)fetchedResultsController {
    if (fetchedResultsController != nil) {
        return fetchedResultsController;
    }

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Document" inManagedObjectContext:managedObjectContext];
    [fetchRequest setEntity:entity];

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(objectID != %@)", self.currentDocID];
    [fetchRequest setPredicate:predicate];

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"dateModified" ascending:NO];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

    [fetchRequest setSortDescriptors:sortDescriptors];

    NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
    aFetchedResultsController.delegate = self;
    self.fetchedResultsController = aFetchedResultsController;

    [aFetchedResultsController release];
    [sortDescriptor release];
    [sortDescriptors release];

    return fetchedResultsController;
}

Cuando se carga fetchedResultsController, mi aplicación se bloquea con una excepción no controlada:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'keypath objectID not found in entity <NSSQLEntity Document id=1>'

Entiendo que todos los NSManagedObjects tienen un ID de objeto, ya sea temporal o permanente. ¿No es este el caso? ¿Alguna idea?

Respuestas a la pregunta(1)

Su respuesta a la pregunta