我正在使用iCloud同步开发iOS应用。我使用支持iCloud同步的核心数据存储数据然后如果我在设备设置中关闭iCloud驱动器,我的应用程序无法读取UbiquityContainer中存储的数据。现在,我希望在用户iCloud驱动器关闭时将iCloud持久性存储数据迁移到本地/其他位置。但我无法获得iCloud持久性存储。我尝试了以下方法无效。
NSPersistentStore *result = [self.persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:storeURL
options:options
error:nil];
结果是返回零。因为我无法获得无处不在的商店店铺。
NSURL *iCloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:@"iCloud.com.Identifier"];
给出nil而不是url.Is有办法在关闭iCloud驱动器后获得iCloud存储。因为我无法显示存储在数据中。
答案 0 :(得分:0)
设计iCloud核心数据应用的启动顺序
采用iCloud时,在设计应用的启动顺序时要特别小心。以下因素起作用,您必须考虑到这些因素:
用户可能已经或可能没有先前表示过偏好 在您的应用中使用iCloud;您的应用的本地实例可能或可能 还没有建立起无处不在的初始商店 容器。
作为发布序列的第一步,请阅读本地 user使用共享的NSUserDefaults对象默认数据库。中 应用程序的操作,使用该对象来保存用户选择 你需要在下次发布时使用。
用户可能会退出iCloud或切换到其他帐户。
如果用户退出iCloud,或切换到其他帐户,无处不在 以前使用过的帐户的容器不再可用 你的应用。
本地Core Data商店可能比商店更新或更旧 同一用户拥有的另一台设备。
在应用启动期间,Core Data可能需要将本地存储与来自iCloud的更改日志进行协调。 这可能涉及检测和解决重复记录和 冲突。测试至关重要。要开始使用一些提示,请参阅 测试和调试您的iCloud应用程序以及最佳实践 和iCloud核心数据编程指南中的故障排除。