使用 Swift 访问非默认 Cloudkit 容器
Accessing non-default Cloudkit container with Swift
我有一个 IOS 8 应用程序,它成功地将记录写入其默认的 Cloudkit 容器。现在我希望在 OS X 下的另一个应用程序中读取和处理这些记录。我已经设置了具有 iCloud 访问权限的新应用程序并选中了“指定自定义容器”选项。这已成功找到容器原来的App和我在Capabilities界面没有错误需要修复
我的所有搜索都告诉我 "It is possible that two apps signed by the same developer share the same container" 但 none 我可以找到的教程文档告诉我如何从自定义容器访问数据。所有示例似乎都以 'let container = CKContainer.defaultContainer()' 开头。但是,我不想从默认容器访问记录。我想要自定义容器。
Apple 文档建议使用 init() 结构,但这也让我感到困惑。这似乎是一个简单的要求。希望有人能给我一个简单的解决方案。
这是未经测试的代码,但据我所知,自定义容器允许您在多个应用程序之间共享这些容器。在 Capabilities 窗格中,您可以选择您选择在此应用程序中使用的所有其他应用程序中可用的所有容器。默认容器是iCloud.com.MyCompany.MyApp
,它应该是自动选择的。现在您已经指定了所需的容器,您可以使用 init()
访问它们
let container = CKContainer(identifier: "iCloud.com.MyCompany.OneOfMyApps")
基本上,标识符是在自定义容器下的 iCloud 功能面板中列出的标识符之一。
我有一个 IOS 8 应用程序,它成功地将记录写入其默认的 Cloudkit 容器。现在我希望在 OS X 下的另一个应用程序中读取和处理这些记录。我已经设置了具有 iCloud 访问权限的新应用程序并选中了“指定自定义容器”选项。这已成功找到容器原来的App和我在Capabilities界面没有错误需要修复
我的所有搜索都告诉我 "It is possible that two apps signed by the same developer share the same container" 但 none 我可以找到的教程文档告诉我如何从自定义容器访问数据。所有示例似乎都以 'let container = CKContainer.defaultContainer()' 开头。但是,我不想从默认容器访问记录。我想要自定义容器。
Apple 文档建议使用 init() 结构,但这也让我感到困惑。这似乎是一个简单的要求。希望有人能给我一个简单的解决方案。
这是未经测试的代码,但据我所知,自定义容器允许您在多个应用程序之间共享这些容器。在 Capabilities 窗格中,您可以选择您选择在此应用程序中使用的所有其他应用程序中可用的所有容器。默认容器是iCloud.com.MyCompany.MyApp
,它应该是自动选择的。现在您已经指定了所需的容器,您可以使用 init()
let container = CKContainer(identifier: "iCloud.com.MyCompany.OneOfMyApps")
基本上,标识符是在自定义容器下的 iCloud 功能面板中列出的标识符之一。