Estoy a punto de terminar con mi versión 1.1 de mi primera app de iOS, en la que he hecho un par de pequeños cambios a mi núcleo del modelo de datos. Más específico, he añadido dos atributos a uno de mis tablas. Este es mi primer núcleo de datos de la aplicación y por lo tanto mi primer núcleo de actualización de datos de una aplicación, y estoy un poco nerveous sobre el código de envío que puede que no funcione para mi de los usuarios actuales. Ya que es una pequeña actualización que me imagino que las Manzanas automático método de migración va a hacer, pero no quiero adivinar.

El código correspondiente se parece a esto:

NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                        [NSNumber numberWithBool:YES],   NSMigratePersistentStoresAutomaticallyOption,
                        [NSNumber numberWithBool:YES],  NSInferMappingModelAutomaticallyOption, nil];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])
{

    //NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}    

En 1.1 he añadido NSDictionary *options.

En mi punto de vista controlador que asegúrese de que el la necesitaba filas no nulas como este:

if (currentPage.inputType == @"drawing") {
    [pageView changeToDrawing];
} else if (currentPage.inputType == @"text") {
    [pageView changeToText];
} else {
    currentPage.inputType = @"text";
    [pageView changeToDrawing];
}

Básicamente, es que estos cambios lo suficiente o tengo que hacer algo más?

InformationsquelleAutor Anders | 2012-01-02

1 Comentario

  1. 24

    Aquí es un artículo muy útil con respecto a los Datos de los núcleos de control de versiones que responde a su pregunta.

    Para resumirlo en pocas palabras, usted necesita agregar una nueva versión del modelo para su proyecto. Esto es necesario para el proceso de migración.

    Editar

    Enlace de arriba ha cambiado y se le redirigirá a la siguiente enlace: Núcleo del Modelo de Datos de control de Versiones y de Migración de Datos de

    Si todo lo demás falla, de google: Núcleo del Modelo de Datos de control de Versiones y de Migración de Datos para desarrolladores de apple.

    • Gracias por tu respuesta, tengo una pregunta relacionada. He añadido los atributos antes he creado la nueva versión del modelo, debo quitar los nuevos atributos de mi de la versión 1.0 y solo tengo en mi 2.0 del modelo de datos de la versión, o eso no importa? Gracias!
    • Absolutamente debe quitar de 1.0 y añadir a la próxima versión. He estado poco por esto hace poco en realidad. 1.0 debe ser exactamente de la misma como lo está actualmente desplegado o de lo contrario obtendrá una excepción. Esto incluye tanto a los atributos, así como las relaciones.
    • Ah, gracias. Tengo que trabajar. ¿Como usted sugiere. 🙂
    • Excelente! Me alegro de que podría ayudar.
    • Por cierto, un consejo rápido: que Es mejor que probar el proceso de migración. Instale la versión de app store, a continuación, ejecute la última (su proyecto) en la parte superior de la misma. Que será una verdadera prueba para comprobar que funciona correctamente.
    • Sí, gracias, lo hice y funciona. No se bloquea y los datos que allí había. Tenía que hacer un pequeño (vista controlador) cambio, sin embargo, así que eso es un buen consejo. 🙂
    • Enlace ya no funciona. Podrías actualizarlo por favor ?
    • Hecho y gracias.

Dejar respuesta

Please enter your comment!
Please enter your name here