1

我是 CloudKit 的新手,刚刚从开发人员库分析 CloudKitAtlas。我创建应用程序,我想将数据“共享”给同一应用程序的另一个用户。

我在私有数据库中有 CKContainer,用户将他创建的所有字典放在其中。现在我想让他有可能将他的部分数据分享给另一个用户(创建公共 containerWithIdentifier)。我知道可以检查通讯簿中的每个电子邮件地址并获得安装该应用程序的结果。所以用户可以选择谁可以看到他的数据。

问题是如何告诉另一个用户应用程序“在我的共享数据上查看该 CKContainer” :)

有人已经在做这样的事情了吗?

4

2 回答 2

1

您可以使用容器 discoverAllContactUserInfosWithCompletionHandler 方法列出地址簿中安装了应用程序的所有用户。它将返回一个数组,您可以从中获取记录 ID。如果您想与其中一个用户共享某些内容,请创建一条记录,将该 ID 放在 to 字段中。在您的应用程序启动时,您将创建一个带有谓词的订阅,该谓词会查找该 TO 字段并将其与您自己的用户 recordId 进行比较。因此,如果在 TO 字段中使用您的 ID 创建了一条记录,那么您将收到一条通知。您要发送给其他用户的任何内容都必须在公共数据库中。我正在做这样的事情。代码可以在https://github.com/evermeer/EVCloudKitDao找到(正在进行中)

于 2014-10-11T11:09:28.627 回答
0

检查 CloudKit 框架中的 CKContainer.h,他们通过电子邮件地址在您的联系人中发现人。如果联系人中的电子邮件地址不是登录苹果 ID(或 icloud 帐户?)的电子邮件地址,我想它不能匹配。

typedef NS_OPTIONS(NSUInteger, CKApplicationPermissions) {
    /* Allows the user's record in CloudKit to be discoverable via the user's email address */
    CKApplicationPermissionUserDiscoverability         = 1 << 0,
} NS_AVAILABLE(10_10, 8_0);
于 2014-11-08T09:55:28.110 回答