Problemas de migración ligeros iOS

Estoy teniendo un poco de problemas, creé una nueva versión de mi contexto y la convertí en la predeterminada, luego cambié mi código de acuerdo con los documentos de Apple y ahora se ve así:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{

    if (persistentStoreCoordinator != nil)
    {
        return persistentStoreCoordinator;
    }
    NSError *error = nil;
    persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
    NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"database.sqlite"];
    NSPersistentStoreCoordinator *psc = persistentStoreCoordinator;
    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                             [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
                             [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];


    BOOL success = [psc addPersistentStoreWithType:NSSQLiteStoreType
                                     configuration:nil URL:storeURL
                                           options:options error:&error];
    if (!success) {
        NSLog(@"Unresolved Error");
        abort();
    }

    return persistentStoreCoordinator;
}

pero recibo un error a pesar de que es 1: 1 el mismo código, en la línea BOOL sucess obtengo un incompatible pointer to integer conversion 'BOOL' with 'NSPersistentstore'

Sin embargo, de alguna manera, el mapeo funcionó y obtuve el nuevo modelo, digamos 4 de cada 5 veces que funciona, la quinta arroja un error en esa línea.

¿Alguna idea para solucionarlo?

ACTUALIZACIÓN cambié un poco el código y ahora se ve así

NSPersistentStore *store = [psc addPersistentStoreWithType:NSSQLiteStoreType
                                     configuration:nil URL:storeURL
                                           options:options error:&error];
if (!store) {
        NSLog(@"Unresolved Error");
        abort();
}

preguntado el 22 de mayo de 12 a las 10:05

1 Respuestas

La advertencia y el error son dos cosas separadas.

La advertencia es que está tratando un puntero como si fuera un número. addPersistentStoreWithType:configuration:URL:options:error no devuelve un BOOL (que es esencialmente un número), devuelve el NSPersistentStore objeto que está creando. En lugar de una variable booleana de éxito, debe asignar el resultado a un NSPersistentStore * variable.

En caso de fallo, vuelve nil y puebla el error objeto. Puede obtener más información sobre el error de este objeto, como registrar su localizedDescription.

contestado el 22 de mayo de 12 a las 11:05

eso es raro... en apples doc es BOOL success = [psc addPersistentStoreWithType:<#Store type#> configuration:<#Configuration or nil#> URL:storeURL options:options error:&error]; - Sebastián Flückiger

funcionó bien en el simulador, pero de alguna manera temo que algo salga mal con los dispositivos de prueba (tengo 4 meses de datos de prueba que no deben dañarse, pero deben actualizarse al nuevo modelo) - Sebastián Flückiger

Todavía estás registrando un mensaje muy inútil. deberías iniciar sesión error.localizedDescription así que si falla, en realidad tienes información útil. - Jim

muchas gracias =) También agregué eso a mi proyecto, ahora es el momento de cruzar los dedos cuando comience a actualizar los dispositivos esta noche =) fuiste de gran ayuda, gracias. - Sebastián Flückiger

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.