使用Swift访问非默认的Cloudkit容器

时间:2015-07-03 06:12:30

标签: ios swift ios8 cloudkit

我有一个IOS 8应用程序,它成功地将记录写入其默认的Cloudkit容器。现在我希望在OS X下的不同应用程序中读取和处理这些记录。我已经设置了具有iCloud访问权限的新应用程序,并选中了“指定自定义容器”选项。这已成功找到原始应用程序和我的容器没有错误可以在Capabilities界面上修复。

我所有的搜索都告诉我“同一个开发人员签署的两个应用程序可能共享同一个容器”,但我找不到任何教程文档,告诉我如何从自定义容器访问数据。所有示例似乎都以'let container = CKContainer.defaultContainer()'开头。但是,我不想从默认容器访问记录。我想要自定义容器。

Apple文档建议使用init()结构,但这让我感到困惑。这似乎是一个简单的请求。希望有人能给我一个简单的解决方案。

1 个答案:

答案 0 :(得分:11)

这是未经测试的代码,但据我所知,自定义容器允许您跨多个应用程序共享这些容器。在“功能”窗格中,您可以选择在此应用中选择使用的所有其他应用中可用的所有容器中的哪一个。默认容器为iCloud.com.MyCompany.MyApp,应自动选中。现在您已经指定了所需的容器,您可以使用init()

访问它们
let container = CKContainer(identifier: "iCloud.com.MyCompany.OneOfMyApps")

基本上,标识符是自定义容器下的iCloud功能窗格中列出的标识符之一。