首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >记录中特定字段的cloudkit通知

记录中特定字段的cloudkit通知
EN

Stack Overflow用户
提问于 2016-11-07 01:59:20
回答 1查看 284关注 0票数 2

我已经让cloudkit通知工作了。当有人更改记录时,订阅者会收到通知。我的订阅定义如下:

         NSPredicate *searchConditions = [NSPredicate predicateWithFormat:@"%K = %@", CLOUDKIT_PUBLIC_ID_GUID, theCloudGUID];
         int subscriptionOptions = CKSubscriptionOptionsFiresOnRecordUpdate | CKSubscriptionOptionsFiresOnRecordDeletion;
         CKSubscription *publicSubscription = [[CKSubscription alloc] initWithRecordType:CLOUDKIT_RECORDNAME_PUBLIC_ID
                                                                               predicate:searchConditions
                                                                                 options:subscriptionOptions];

         CKNotificationInfo *notificationInfo = [CKNotificationInfo new];
         notificationInfo.alertLocalizationKey = CLOUDKIT_NOTIFICATION_PUBLIC;
         notificationInfo.shouldBadge = NO;
         notificationInfo.alertBody = CLOUDKIT_NOTIFICATIONBODY_PUBLIC;
         publicSubscription.notificationInfo = notificationInfo;

         [publicDatabase saveSubscription:publicSubscription completionHandler:^(CKSubscription * _Nullable subscription, NSError * _Nullable error)
          {
              //error handling
          }

问题是,这条记录中有多个字段。我只想在一个特定字段发生变化时提醒订阅者。

创建订阅时,有没有办法设置搜索谓词来检测特定字段中的更改?我通读了各种谓词文档,但没有看到特别提到这一点。

或者,在收到通知时,有没有办法查看哪些字段发生了更改?在didReceiveRemoteNotification中,我尝试了:

 CKQueryNotification *queryNotification = [CKQueryNotification notificationFromRemoteNotificationDictionary:userInfo]; 

queryNotification.recordFields为空。

最坏的情况是,我曾考虑将特定字段拆分到它自己的记录中,但这样我就有了维护更多由公共GUID绑定在一起的记录的开销。我希望能让它更紧凑。

EN

回答 1

Stack Overflow用户

发布于 2018-09-05 07:51:01

您的问题有点陈旧,所以您可能已经弄清楚了,但使用desiredKeys属性可能会有所帮助:https://developer.apple.com/documentation/cloudkit/cknotificationinfo/1514931-desiredkeys

如果这些通知是静默推送,你可以查看有效负载,看看某些键是否发生了变化,并让你的应用程序做出相应的反应。

如果这些是推送(对用户可见)通知,我认为你不能根据键的变化本身进行推送。如果你正在测试这个值是如何改变的(它是等于这个还是不等于那个等等),你可以在你的CKQuerySubscription上设置一个NSPredicate,但是我根本不确定它是否会被任何改变触发。

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

https://stackoverflow.com/questions/40452641

复制
相关文章

相似问题

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