首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CloudKit和CKSubscriptions

CloudKit和CKSubscriptions
EN

Stack Overflow用户
提问于 2015-04-30 15:58:35
回答 1查看 191关注 0票数 0

我正在解决一个非常奇怪的问题,那就是苹果通过CKSubscriptions提供的CloudKit和推送通知。

首先,一切都很好,我可以收到一个CKNotification,它工作了一段时间,直到我对开发模式做了一些更改,我只是添加了一个新字段,没有其他的,没有什么奇怪的。

从那一刻起,我就无法接收CKNotifications了。我确信我没有在代码中犯任何错误,因为我没有修改它。我只是从Cloud Dashboard在我的模式中添加了一个新字段。

我是唯一一个解决这个问题的人?您是否知道是否存在修复程序?

谢谢。

更新:如果"list“字段是一个CKReference,如果设置了DeleteSelf操作,则不会触发通知,如果操作为None,则会触发通知。顺便说一句,我需要DeleteSelf。

EN

回答 1

Stack Overflow用户

发布于 2015-04-30 17:43:07

已解决:

错误在于CKSubscription正在以一种方式触发:

代码语言:javascript
复制
let listReference = CKReference(recordID: r.recordID, action: CKReferenceAction.None)                    
let predicate = NSPredicate(format: "%K == %@", "list", listReference)
                let itemsSubscription = CKSubscription(recordType: "Items", predicate: predicate, subscriptionID: "ITEMS", options: CKSubscriptionOptions.FiresOnRecordCreation | CKSubscriptionOptions.FiresOnRecordUpdate | CKSubscriptionOptions.FiresOnRecordDeletion)

但是引用操作现在是DeleteSelf

因此,更改为

代码语言:javascript
复制
let listReference = CKReference(recordID: r.recordID, action: CKReferenceAction.DeleteSelf) 

就能达到目的。

现在工作得很好。

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

https://stackoverflow.com/questions/29962163

复制
相关文章

相似问题

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