大佬教程收集整理的这篇文章主要介绍了ipad – Coredata将sqlite保存到Dropbox – 还原问题 – 在应用重新启动之前不会重新加载Sqlite文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用sqlite文件的DropBox同步来为我的用户提供另一种备份方式.
从DropBox备份和恢复是没有问题的;但是,一旦恢复,必须重置应用程序以显示数据.
如何强制关闭旧模型并重新打开?
我试过以下没有运气:
NSPersistentStore* store = [[_persistentStoreCoordinator persistentStores] lastObject]; [_persistentStoreCoordinator removePersistentStore:store error:nil]; [__managedObjectModel release]; __managedObjectModel = nil; [_persistentStoreCoordinator release]; _persistentStoreCoordinator = nil; [self persistentStoreCoordinator]; [self managedObjectContext]; [self managedObjectModel];
NSError *error; // retrieve the store URL NSURL * storeURL = [[__managedObjectContext persistentStoreCoordinator] URLForPersistentStore:[[[__managedObjectContext persistentStoreCoordinator] persistentStores] lastObject]]; // lock the current context [__managedObjectContext lock]; [__managedObjectContext reset];//to drop pending changes //delete the store from the current managedObjectContext if ([[__managedObjectContext persistentStoreCoordinator] removePersistentStore:[[[__managedObjectContext persistentStoreCoordinator] persistentStores] lastObject] error:&error]) { NSDictionary *options = [NSDictionary DictionaryWithObjectsAndKeys: [NSnumber numberWithBool:YES],NSMigratePersistentStoresAutomaticallyOption,[NSnumber numberWithBool:YES],NSInferMappingModelAutomaticallyOption,nil]; [[__managedObjectContext persistentStoreCoordinator] addPersistentStoreWithType:NSsqliteStoreType configuration:nil URL:storeURL options:options error:&error];//recreates the persistent store } dispatch_async(dispatch_get_main_queue(),^{ self.ready = YES; [[NsnotificationCenter defaultCenter]postNotificationName:kmodelDidChange object:nil]; }); [__managedObjectContext unlock];
以上是大佬教程为你收集整理的ipad – Coredata将sqlite保存到Dropbox – 还原问题 – 在应用重新启动之前不会重新加载Sqlite文件全部内容,希望文章能够帮你解决ipad – Coredata将sqlite保存到Dropbox – 还原问题 – 在应用重新启动之前不会重新加载Sqlite文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。