gpt4 book ai didi

ios - 将核心数据应用程序迁移到 iCloud

转载 作者:行者123 更新时间:2023-11-28 22:11:22 25 4
gpt4 key购买 nike

这是我的场景:

我的应用程序使用核心数据并且我正在添加 iCloud 支持,但我在尝试将用户数据迁移到 iCloud 时遇到问题。

这是我尝试过的:

- 使用 addPersistentStoreWithType 添加我当前的本地数据库

    NSError* error;

NSURL* oldStoreURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:NULL];
oldStoreURL =[oldStoreURL URLByAppendingPathComponent:@"Database.sqlite"];

// add local store (local version)

NSPersistentStore *store = [self.managedObjectContext.persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:oldStoreURL
options:options
error:&error];

- 使用方法 migratePersistentStore 进行迁移(可能我在这里遗漏了一些东西):

    NSURL* storeURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:NULL];
storeURL = [storeURL URLByAppendingPathComponent:@"Database.sqlite"];

[self.managedObjectContext.persistentStoreCoordinator migratePersistentStore:store toURL:storeURL options:iCloudOptions withType:NSSQLiteStoreType error:&error];

我收到 Cocoa 错误 134080,无法添加同一商店两次。

谁能解释一下这个 migratePersistentStore 方法是如何工作的以及我需要为每个参数传递什么?我在 Apple 文档中几乎没有发现它。

最佳答案

migratePersistentStore 的要点是您要移动到一个不同的 商店。您不能迁移到同一个地方,也不能从同一个地方迁移。

由于您正在迁移到 iCloud,因此请为支持 iCloud 的商店使用不同的名称和/或路径。例如,将 iCloud 命名为 Database-iCloud.sqlite。然后从您现有的商店迁移到那个商店。

关于ios - 将核心数据应用程序迁移到 iCloud,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22843220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com