我在iOS項目中使用Core數據。無論何時修改實體屬性,我都有自動數據遷移的數據模型設置。但我最近做了一些實體關係的一些變化,現在我的應用程序崩潰:「無法找到源存儲模型」Coredata手動移植
我意識到,重置應用程序,即刪除和重新安裝將解決這個問題,位I已經有一個實時版本,我的用戶將失去他們所有的數據!
因此,現在我正在嘗試手動遷移,但iOS文檔不是很有幫助。舉例來說,我有這樣的代碼,我創建一個模型映射後運行:
NSURL *destinationStoreURL = [NSURL fileURLWithPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: @"import.sqlite"]];
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"db.sqlite"]];
//initialize migration manager
NSMigrationManager *migrationManager = [[NSMigrationManager alloc] initWithSourceModel:[[self persistentStoreCoordinator] managedObjectModel]
destinationModel:[[self persistentStoreCoordinator] managedObjectModel]];
//perform migration
NSError *error = nil;
NSMappingModel *mappingModel = [NSMappingModel inferredMappingModelForSourceModel:[[self persistentStoreCoordinator] managedObjectModel]
destinationModel:[[self persistentStoreCoordinator] managedObjectModel] error:&error];
if (mappingModel == nil) {
NSLog(@"No Mapping model error %@, %@", error, [error userInfo]);
}
[migrationManager migrateStoreFromURL:sourceStoreURL
type:NSSQLiteStoreType
options:nil
withMappingModel:mappingModel
toDestinationURL:destinationStoreURL
destinationType:NSSQLiteStoreType
destinationOptions:nil
error:&error];
運行這段代碼的工作和重置數據庫,但我不能找到我的舊數據,當我保存任何新的數據,我得到沒有持久存儲的錯誤!
有沒有人有任何想法?
誇,我也同樣的問題,但我解決不了。這篇文章正是我發生的事情。 – Xeieshan 2014-03-06 06:37:05