Alcuni clienti di un'applicazione iOS basata su Core Data riportano che occasionalmente perdono dati. Le relazioni sono molto strane, motivo per cui vorrei chiedere la tua opinione su questo. I clienti segnalano che quando riaprono l'applicazione dopo un po 'di tempo (minuti, ore o giorno successivo), alcuni dei loro dati vengono persi come se il database sottostante ripristinato a uno stato precedente.Core Data torna allo stato precedente senza motivo apparente
Ho lavorato con Core Data per diversi anni e non ho mai eseguito in un problema come questo prima. L'applicazione è abbastanza semplice, il che significa che utilizzo solo un contesto oggetto gestito e le modifiche vengono confermate prima che l'applicazione passi in secondo piano.
Mi rendo conto che questo è un campo lungo, ma quali potrebbero essere alcune potenziali cause di questo tipo di problema o quali controlli posso fare per raccogliere ulteriori informazioni? Sfortunatamente, non riesco a riprodurre il problema da solo, il che renderebbe tutto molto più semplice.
Aggiornamento:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (_persistentStoreCoordinator) return _persistentStoreCoordinator;
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Prime.sqlite"];
NSError *error = nil;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:@{ NSMigratePersistentStoresAutomaticallyOption : @YES, NSInferMappingModelAutomaticallyOption : @YES } error:&error]) {
// Error Handling
}
return _persistentStoreCoordinator;
}
hai impostare tutte le opzioni [ 'pragma'] (http://developer.apple.com/library/mac/#documentation/cocoa/Conceptual/CoreData/Articles/cdPersistentStores.html#//apple_ref/ doc/uid/TP40002875-SW12) nel tuo negozio? –
@DanShelly No. Ho aggiornato la domanda con lo snippet di codice a cui ti riferisci. –
Quando ** esattamente ** salvate le modifiche? –