核心数据迁移

时间:2017-09-14 13:41:51

标签: ios objective-c sqlite core-data icloud

暂且不谈iCloud折旧事宜

将核心数据迁移到iCloud时

    NSURL *storeURL = [self.persistentStoreCoordinator.persistentStores.lastObject URL];
    NSLog(@"Current Store URL (before migration from local to iCloud): %@", [storeURL description]);

    NSPersistentStore *currentStore = self.persistentStoreCoordinator.persistentStores.lastObject;

    NSURL *cloudURL =  [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier: nil]; //@"iCloud.com.1callelectrical.iCertifi"
    NSString *cloudStoreTitle = @"myCloudSync";

    NSDictionary *options = @{NSPersistentStoreUbiquitousContentURLKey: cloudURL,
                              NSPersistentStoreUbiquitousContentNameKey: cloudStoreTitle,
                              NSMigratePersistentStoresAutomaticallyOption : @YES,
                              NSInferMappingModelAutomaticallyOption : @YES};

    [self.persistentStoreCoordinator migratePersistentStore:currentStore toURL:storeURL options:options withType:NSSQLiteStoreType error:nil];

    storeURL = [self.persistentStoreCoordinator.persistentStores.lastObject URL];
    NSLog(@"\n\n**Current Store URL (after migration from local to iCloud): %@**\n\n", [storeURL description]);

我觉得它有点工作。问题是我没有同步,只是一些数据的副本共享到另一台设备,但没有添加最新的数据。此外,必须在其他设备上重新启动应用程序几次才能显示数据。例如,3或4运行,然后将出现数据。我还必须在每次运行上运行迁移代码,这是不对的。如果未运行迁移代码,则似乎使用本地存储

在文件目录中,我有:CoreDataUbiquitySupport

登录进行迁移:

  

当前商店网址(从本地迁移到iCloud之前):   文件:///var/mobile/Containers/Data/Application/F6C79B83-59E4-4A2A-9795-75DEFF597F87/Documents/xxxx.sqlite   2017-09-14 14:21:51.619049 + 0100 iCertifi [2320:897501]   -PFUbiquitySwitchboardEntryMetadata setUseLocalStorage :: CoreData:Ubiquity:   移动~CCA1C29E-3BDF-4EE7-BD60-FA14050F1AC1:xxxxCloudSync使用本地   存储:1表示新的NSFileManager当前令牌

我在控制台中也有很多错误

  

CoreData:Ubiquity:CoreData:Ubiquity:无法继续解析   URL的组件:/ var / mobile / Library / Mobile   文档/ XXXXXXX / CoreData / xxxxxCloudSync / .baseline / current.nosync

     

困惑于:current.nosync

     

困惑于:手机~CCA1C29E-3BDF-4EE7-BD60-xxxxxxxxxx

     

困惑于:baseline.gcmodel

     

困惑于:baseline.meta

     

困惑于:baseline.model

     

困惑:商店

     

困惑于:xxxxx.sqlite **

这继续......

最后我收到了:

  

-PFUbiquitySwitchboardEntryMetadata setUseLocalStorage :: CoreData:Ubiquity:   移动~CCA1C29E-3BDF-4EE7-BD60-FA14050F1AC1:xxxxCloudSync使用本地   存储:0表示新的NSFileManager当前令牌

我在搜索列表中查看了很多关于SO和博客的问题

0 个答案:

没有答案