2014-10-10 42 views
1

我是CloudKit中的新成员,刚刚从Developer Library中分析CloudKitAtlas。 我创建应用程序,我想要“共享”数据给同一应用程序的另一个用户。将CloudKit应用程序的值传递给另一个用户

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

的问题是如何来告诉其他用户的应用“看看到CKContainer在我的共享数据” :)

任何人都已经在做这样的事情?

回答

1

您可以使用容器discoverAllContactUserInfosWithCompletionHandler方法列出您的addresbook中已安装应用程序的所有用户。它将返回一个可以从中获得recordID的数组。如果您想与其中一位用户分享某些内容,请创建一个记录,让您将该ID置于某个字段中。在您的应用程序启动时,您将创建一个订阅,其谓词将查找该TO字段并将其与您自己的用户recordId进行比较。因此,如果在TO字段中使用您的ID创建记录,您将收到通知。无论你想发送给其他用户,都必须在公共数据库中。我正在研究这样的事情。代码可在https://github.com/evermeer/EVCloudKitDao(正在进行中)

+0

该项目的简化版,工作对我来说,我只在Objective-C的编码,所以我也来试试我的方式去做:)但投票,为您的帮助反正.. – Mayo323 2014-10-13 15:10:33

+0

是否遵照了使用cocoapods下载依赖关系的说明? – 2014-10-13 18:03:14

+0

不,我只是检查你的代码。那个程序会像使者一样? – Mayo323 2014-10-13 20:36:57

0

检查CloudKit框架中的CKContainer.h,他们通过电子邮件地址发现联系人中的人。如果联系人中的该电子邮件地址不是登录apple 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); 
相关问题