您可以在多个应用程序之间使用 NSPersistentCloudKitContainer 共享数据吗?

Can you share data with NSPersistentCloudKitContainer between multiple apps?

所以我的问题如标题中所写,如果你可以使用 NSPersistentCloudKitContainer 在不同的应用程序之间共享数据,比如你有一个不同的应用程序用于 iPad,一个不同的应用程序用于 iPhone 和Mac 不同的一个,如果可能的话你会怎么做? 提前致谢!

是的,您可以,甚至可以跨不同的平台(macOS,iOS)。事实上,我已经做过好几次了。只需要相同的 iCloud 捆绑包 ID。单击 select iCloud 的功能。打开 CloudKit 复选框按钮。然后 select 下面的特定包 ID。

如果您要使用相同的云容器,则必须小心使用的数据类型。例如,您不应该将 UIImage 或 NSImage 保存在那里,因为它们彼此不完全兼容。在这种情况下,您应该将图像保存为 Data.

加法

当你想使用一个特定的云容器而不是你的项目自动创建的(默认)容器时,确保你在访问云数据库时指定它。对于 macOS 和 iOS.

也是如此
let cloudContainer = CKContainer(identifier: "iCloud.com.tomato.Eltomato")
let publicDB = cloudContainer.publicCloudDatabase