菜鸟教程小白 发表于 2022-12-13 11:47:29

ios - 无法从 iCloud 迁移永久存储


                                            <p><p>我正在尝试从我的应用中的 <code>NSPersistentStore</code> 中删除 <code>iCloud</code> 同步功能。迁移不会返回任何错误,但是,启用 iCloud 的持久存储中的数据会在迁移后消失。</p>

<p>以下是我的相关代码:</p>

<pre><code>-(void)setUpCoreDataStackWithICloud
{
//Set up the model and context.
    self.model = ;
    self.context = [init];
    ;

    if (==YES) {
      ;

      NSUserDefaults *defaults = ;
       forKey:@&#34;lastLaunchOfAppiCloudWasEnabled&#34;];

    }else self.psc = ;

    ;
}
    -(NSPersistentStoreCoordinator*)persistentStoreCoordinatorForUserThatAlreadyMigratedToiCloud
{
    NSLog(@&#34;persistentStoreCoordinatorForUserThatAlreadyMigratedToiCloud called&#34;);
    NSPersistentStoreCoordinator *psc = [initWithManagedObjectModel:self.model];

    NSError *error = nil;

    NSPersistentStore *store = [psc addPersistentStoreWithType:NSSQLiteStoreType
                                                 configuration:nil
                                                         URL:
                                                       options:
                                                         error:&amp;error];
    if (!store) {
      NSLog(@&#34;failed to add store with error %@&#34;,);
    }else NSLog(@&#34;successfully added store for user that has already migrated to iCloud&#34;);


    NSDictionary *migrateOptions = @{ NSPersistentStoreRemoveUbiquitousMetadataOption : @YES,
                           NSMigratePersistentStoresAutomaticallyOption : @YES,
                           NSInferMappingModelAutomaticallyOption : @YES};

    NSError *migrationError = nil;

    NSPersistentStore *migratedStore = options:migrateOptions withType:NSSQLiteStoreType error:&amp;migrationError];

    if (migrationError) {
      NSLog(@&#34;Migration from iCloud enabled persistent store was unsuccessful. %@&#34;, migrationError.localizedDescription);
    }else NSLog(@&#34;The migration from the iCloud enabled persistent store was successful&#34;);

    NSLog(@&#34;The migrated store is %@&#34;, migratedStore);

    return psc;
}

-(NSURL*)testNewestStoreURL{
NSString *path = ;
NSURL *storeURL = ;
return storeURL;
}

-(NSURL*)newStoreURL
{
            NSString *path = ;
            NSURL *storeURL = ;
            return storeURL;
      }
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>它不起作用的原因是因为我也在使用映射模型进行架构迁移。根据文档,iCloud 不支持此功能。即使我试图摆脱 iCloud,当涉及到架构迁移时,它也不允许访问数据。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 无法从 iCloud 迁移永久存储,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/33727390/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/33727390/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 无法从 iCloud 迁移永久存储