Lor*_*ngo 2 core-data swift cloudkit
在以下链接中,提供了一个项目的源代码,该项目允许您在相同的用户设备之间同步核心数据。数据存储在用户私有数据库中......有没有办法从公共 CloudKit 数据库中的 CoreData 同步数据,以便所有应用程序用户之间的应用程序都相同?为什么 NSPersistentCloudKitContainer 不允许你设置这个?
https://developer.apple.com/documentation/coredata/synchronizing_a_local_store_to_the_cloud
现在可以通过新的databaseScope属性在 iOS 14.0+ Beta 和 macOS 11.0+ Beta 中实现这一点:https : //developer.apple.com/documentation/coredata/nspersistentcloudkitcontaineroptions/3580372-databasescope
可能的值是.public(公共数据库)、.private(私有数据库)和.shared(共享数据库)。
例如:
let container = NSPersistentCloudKitContainer(name: "test")
guard let description = container.persistentStoreDescriptions.first else {
fatalError("Error")
}
description.cloudKitContainerOptions?.databaseScope = .public
Run Code Online (Sandbox Code Playgroud)
视频https://developer.apple.com/videos/play/wwdc2020/10650描述了如何通过将 databaseScope 值设置为将 Core Data 存储与 CloudKit 公共数据库同步.public.
您可能还需要#available检查以确保向后兼容性,即:
if #available(iOS 14.0, *) {
description.cloudKitContainerOptions?.databaseScope = .public
} else {
// Fallback on earlier versions
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1009 次 |
| 最近记录: |