首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CKShare的订阅

使用CKShare的订阅
EN

Stack Overflow用户
提问于 2018-01-30 15:50:09
回答 1查看 273关注 0票数 0

我不熟悉订阅和云工具包,我正在尝试设置订阅,以便在创建、编辑、删除CKShare记录时发送推送通知,以及当参与者离开私有数据库和共享数据库的共享时发送推送通知。

在我的应用程序中,Cloudkit中有两种记录类型。第一个是Deck,第二个是CardDeckCard之间存在one-to-many关系。每个Card都有一个指向其DeckCKReference。我注意到在Cloudkit仪表板中有第三种记录类型,名为cloudkit.share。根据我的研究,我相信我这里需要四个订阅。当用户接受使用CKQuerySubscription的共享时,私有数据库上的DeckCard各一个使用CKQuerySubscription,共享数据库上的DeckCard各一个。我是否还需要在每个数据库上为记录类型cloudkit.share创建另一个订阅,总共六个订阅?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-02-28 01:00:21

在共享和专用数据库上设置单个CKDatabaseSubscription后,任何更改都将触发AppDelegate方法:

代码语言:javascript
复制
-(void)application:(NSApplication *)application didReceiveRemoteNotification:(nonnull NSDictionary<NSString *,id> *)userInfo

共享数据库有点复杂,因为您不能查询默认区域。您需要使用setRecordZoneWithIDChangedBlock:^(CKRecordZoneID * _Nonnull zoneID)设置一个初始CKFetchDatabaseChangesOperation,以获取zoneID的共享记录。这样,您就可以像查询私有数据库一样查询所有共享记录。

在测试时,不要忘记从CloudKitDashboard中删除订阅,因为订阅将保留并触发,即使从代码中删除也是如此。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48516410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档