Ho un (proably) semplice da risolvere problema con il mio archivio persistente coredata.rinominare persistentstore coordinator URL
ho creato con:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (persistentStoreCoordinator != nil)
{
return persistentStoreCoordinator;
}
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"dummyURL.sqlite"];
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error])
{
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return persistentStoreCoordinator;
}
utilizzando l'URL dummyURL.sqlite
ho fatto questo, il primo giorno di lavoro con il progetto, e hanno dimenticato di rinominarlo .. ora tutti i miei dispositivi di test attuali (4) erano in uso per più di due mesi, utilizzando l'applicazione, raccogliendo un sacco di dati e la memorizzazione con un URL stupida ^^
UPDATE Ho fatto qualche ricerca sulla migrazione di negozi persistenti e ha scritto questa funzione:
-(void)migrate{
NSPersistentStoreCoordinator *psc = [self.dataHandler.managedObjectContext persistentStoreCoordinator];
NSURL *oldURL = [psc URLForPersistentStore:[[psc persistentStores]objectAtIndex:0]];
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSURL *newURL = [[appDelegate applicationDocumentsDirectory] URLByAppendingPathComponent:@"database.sqlite"];
NSError *error = nil;
NSPersistentStore *oldStore = [psc persistentStoreForURL:oldURL];
NSPersistentStore *newStore = [psc migratePersistentStore:sqliStoreOld
toURL:newURL
options:nil
withType:NSSQLiteStoreType
error:&error];
}
DOMANDA 1will this work or will i lose some data with that?
DOMANDA 2afterwards will i just have to change the appendString in my persistenstore function?
grazie per la risposta rapida. Sono un po 'losco sul concetto persistentstore (thats perché non lo tocco più dopo averlo creato) ... im attualmente esplorando 'migratePersistentStore' ma ho paura di provarlo effettivamente a causa di dataloss ..:/ dove vorrei mettere un codice di migrazione? –