0

Apple が CKSubscriptions で提供する CloudKit とプッシュ通知に関する非常に奇妙な問題に対処しています。

まず、すべてが正常に機能しています。CKNotification を受け取ることができます。開発スキーマにいくつかの変更を加えるまで、数日間機能しました。新しいフィールドを追加しただけで、他には何も変わっていません。

その瞬間から、CKNotifications を受信できなくなりました。私はコードを変更していないので、間違いはなかったと確信しています。クラウド ダッシュボードからスキーマに新しいフィールドを追加しただけです。

この問題に取り組んでいるのは私だけですか?修正プログラムが存在するかどうか知っていますか?

ありがとう。

更新: CKReference であるフィールド「リスト」の場合、DeleteSelf アクションが設定されている場合、通知は発生しません。アクションが None の場合、通知は発生します。ところで、DeleteSelf が必要です。

4

1 に答える 1

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) 

トリックを行います。

現在は正常に動作しています。

于 2015-04-30T09:43:07.020 に答える