2012-05-22 5 views
0

Je suis ayant un peu de tracas, j'ai créé une nouvelle version de mon contexte & l'a fait par défaut, après que j'ai changé mon code selon les docs de pomme et il ressemble à ceci maintenant:La migration de poids léger tracas iOS

- (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; 
} 

mais je reçois une erreur, même si elle est de 1: 1 du même code, dans la ligne BOOL sucess je reçois un incompatible pointer to integer conversion 'BOOL' with 'NSPersistentstore'

en quelque sorte la mise en correspondance a travaillé bien et je reçois le nouveau modèle permet de dire 4 fois sur 5 cela fonctionne, le 5ème il jette une erreur dans cette ligne.

des idées comment y remédier?

MISE À JOUR j'ai changé un peu le code et il ressemble maintenant que

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

Répondre

2

L'avertissement et l'erreur sont deux choses distinctes. L'avertissement est que vous traitez un pointeur comme s'il s'agissait d'un nombre. addPersistentStoreWithType:configuration:URL:options:error ne renvoie pas un BOOL (qui est essentiellement un nombre), il renvoie l'objet NSPersistentStore que vous créez. Au lieu d'une variable de succès booléenne, vous devez affecter le résultat à une variable NSPersistentStore *. En cas d'échec, il renvoie nil et remplit l'objet error. Vous pouvez obtenir plus d'informations sur l'erreur de cet objet, telle que la consignation de localizedDescription.

+0

c'est bizarre ... dans les pommes doc son 'BOOL succès = [psc addPersistentStoreWithType: <# Store type #> configuration: <# Configuration ou nil #> URL: options storeURL: options erreur: & erreur];' –

+0

mais à part à partir de cela - mon code devrait être bien? –

+0

J'ai réécrit mon code - ça te va mieux maintenant? –

Questions connexes