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

Posted

技术标签:

【中文标题】您可以在多个应用程序之间使用 NSPersistentCloudKitContainer 共享数据吗?【英文标题】:Can you share data with NSPersistentCloudKitContainer between multiple apps? 【发布时间】:2020-01-10 14:17:54 【问题描述】:

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

【问题讨论】:

【参考方案1】:

是的,即使跨不同平台(macOS、ios)也可以。实际上,我已经这样做了好几次了。只需要相同的 iCloud 捆绑包 ID。单击功能以选择 iCloud。打开 CloudKit 复选框按钮。然后在下面选择一个特定的捆绑包 ID。

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

加法

当您想要使用项目自动创建的(默认)之外的特定云容器时,请确保在访问云数据库时指定它。 macOS 和 iOS 也是如此。

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

【讨论】:

谢谢。埃尔番茄。你知道你是否可以使用 NSPersistentCloudKitContainer 共享不同应用程序的私有数据量(相同的苹果 id,但应用程序来自同一用户的同一开发人员) @Emmy 我不明白你所说的共享私人数据量是什么意思。但不就是像“iCloud.com.tomato.Eltomato”那样共享同一个云容器ID吗? 我明白了。我有不止一个应用程序允许用户将学生添加到应用程序中。这些应用程序可以相互共享相同的学生信息量。所有应用程序都使用相同的云容器 ID,您可以在 Xcode 云配置中设置。

以上是关于您可以在多个应用程序之间使用 NSPersistentCloudKitContainer 共享数据吗?的主要内容,如果未能解决你的问题,请参考以下文章

Firebase - 可以在多个实时数据库之间共享分片数据吗

将视频播放到多个 chromecast

Django在多个项目之间共享相同用户模型和数据库的最佳方式

多个活动中的相同按钮

多个视口与多个帧缓冲区之间的使用差异是啥?

OneNote和OneNote 2016之间的区别