4 respuestas

  1. 37
    - (NSManagedObjectContext *)managedObjectContext
    {
    if (managedObjectContext != nil) return managedObjectContext;
    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
    if (coordinator != nil) {
    managedObjectContext = [[NSManagedObjectContext alloc] init];
    [managedObjectContext setPersistentStoreCoordinator:coordinator];
    }
    return managedObjectContext;
    }
    • No ha proporcionado una carga diferida implementación de persistentStoreCoordinator
    • así coordinator siempre será nil
    • de manera que siempre regresan nil de este método
    • que significa que usted conseguirá siempre el error anterior.

    Para explicar el error:

    +entityForName: nil no es legal NSManagedObjectContext parámetro de búsqueda por nombre de la entidad ‘Cuenta’

    No es inmediatamente evidente a partir de la lectura, pero esto significa que nil no es legal, cosa que pasar para que el objeto administrado contexto. En la primera lectura, parece que estamos haciendo entityForName:nil pero ese no es el caso.

    Para solucionar el problema, usted tendrá que proporcionar una copia del almacén persistente de coordinador. Tengo un pequeño artículo aquí que explica lo poco código que usted necesita para formar el núcleo de una pila de datos, esto puede ayudar a usted.

    Gracias, funcionó para el nombre de usuario. He cambiado aplicación delegado (véase más arriba), pero ahora estoy recibiendo el error: -[NSManagedObject setPassword:]: no reconocidos selector enviado a la instancia
    Bueno, eso es otra cuestión. Que parece que no se ha definido el correcto subclase en su modelo de datos (hay un “Nombre” y “Clase” en la casilla a rellenar)
    Mi modelo de datos tiene un atributo que es el nombre de usuario. Y el nombre de la entidad se Cuenta, la clase que muestra que hay NSManagedObject, que he editado antes, no estoy seguro si eso es correcto, aunque.
    Usted tiene que fijar la clase a la Cuenta y generar la Cuenta.h y Cuenta.m archivos mediante la selección de la entidad y la elección del editor –> crear NSManagedObject subclase..
    Este es mi resultado: nombre de usuario:Jorge contraseña: <70617373 776f7264> supongo que funcionó, ¿verdad?

    OriginalEl autor jrturton

  2. 0

    En mi caso, estoy utilizando múltiples contextos (padre/hijo) con diferentes tipos de concurrencia para mejorar el rendimiento. Tengo tres contextos:

    1. storeContext que es el único contexto cuya persistentStoreCoordinator se había establecido.
    2. viewContext cuyo padre es storeContext
    3. backgroundContext cuyos padres debería haber sido viewContext pero me olvidó poner backgroundContext.parent = viewContext.

    De ahorro de una entidad en la backgroundContext se produce el mismo error…

    +entityForName: nil no es legal NSManagedObjectContext parámetro de búsqueda por nombre de la entidad…

    …porque backgroundContext no era parte de los padres/niño contexto de la cadena.

    Configuración backgroundContext‘s parent a viewContext establecido la cadena de nuevo al almacén persistente de coordinador y resuelto el error.

    OriginalEl autor Clay Ellis

  3. 0

    Me encontré con este entityForName: nil error, pero terminó siendo algo así como un arenque rojo que sólo se manifiesta cuando la ejecución de las pruebas unitarias en mi CI. Durante las pruebas, la aplicación se fue encontrando con algunos extraños roscado condiciones causadas por el NSAttributedString HTML del Importador. Asíncrono de envío en la cola principal para interactuar con los Datos principales de los que estaba sucediendo justo como el NSAttributedString estaba siendo creado a partir de HTML.

    Acaba de publicar mi experiencia aquí en caso de que termina ayudando a alguien más. 🙂

    OriginalEl autor tylermilner

  4. -1

    Podría ocurre debido a la falta de coincidencia de nombre de la entidad y su nombre de la clase. Asegúrese de que la Cuenta de la entidad tiene un adecuado nombre de la clase .archivo xcdatamodeld.

    El mensaje de error indica que el managedObjectContext parámetro es igual a cero, esto no tiene nada que ver con el modelo

    OriginalEl autor Zend

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *