CloudKit和CKSubscriptions

时间:2015-04-30 07:58:35

标签: ios cloudkit cksubscription cknotification

我正在解决一个关于CloudKit和推送Apple通过CKSubscriptions提供的通知的非常奇怪的问题。

首先,一切正常,我能够收到CKNotification,它已经工作了几天,直到我对开发模式进行了一些更改,我只是添加了一个新字段,没有别的,没有什么奇怪的。

从那一刻起,我无法收到CKNotifications。我当然确定我没有在代码中犯任何错误,因为我没有改变它。我只在Cloud Dashboard的架构中添加了一个新字段。

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

感谢。

UPDATE:如果字段“list”是CKReference,如果设置了DeleteSelf操作,则不会触发通知,如果操作为None,则触发通知。顺便说一下,我需要删除自己。

1 个答案:

答案 0 :(得分:0)

解决:

错误在于CKSubscription正在解雇:

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

所以改为

let listReference = CKReference(recordID: r.recordID, action: CKReferenceAction.DeleteSelf) 

会做到这一点。

现在工作正常。