CloudKit и CKSubscription

Я решаю очень странную проблему с CloudKit и push-уведомлениями, предоставляемыми Apple с CKSubscription.

Во-первых, все работает нормально, я могу получить CKNotification, он работал в течение нескольких дней, пока я не внес некоторые изменения в схему разработки, я просто добавил новое поле, ничего больше, ничего странного.

С этого момента я не могу получать CKNotifications. Я, конечно, уверен, что не допустил ошибок в коде, потому что не изменил его. Я только добавил новое поле в мою схему из Облачной панели.

Я единственный, кто решает эту проблему? Вы знаете, существует ли исправление?

Благодарю.

ОБНОВЛЕНИЕ: если поле "список", которое является CKReference, если установлено действие DeleteSelf, уведомление не сработает, если действие - Нет, уведомление сработает. Кстати мне нужен DeleteSelf.

1 ответ

РЕШИТЬ:

Ошибка состояла в том, что 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) 

сделает свое дело.

Сейчас работает нормально.

Другие вопросы по тегам