我使用 CloudKit。我有一个Channel
记录类型,它确实具有isLive
属性。它可以是0
或1
指示频道是否直播。
如果频道从 0 变为 1,我想向所有用户发送通知。
我试图像这样定义 CKQuerySubscription :
let liveSubscription = CKQuerySubscription(recordType: "Channel", predicate: NSPredicate(format: "(recordID == '4cebe441-c6f7-47af-85df-e6572e757c5c') AND (isLive == 1)"), options: [.firesOnRecordUpdate])
let liveNotificationInfo = CKNotificationInfo()
liveNotificationInfo.shouldSendContentAvailable = false
liveNotificationInfo.shouldBadge = true
liveNotificationInfo.alertBody = "Test is live now"
channelSubscription.notificationInfo = liveNotificationInfo
不过,这确实会发送有关此频道记录的任何更新的通知。它不关心isLive
谓词。
知道如何仅接收isLive
从 0 更改为 1 的通知吗?
还是最好接收此频道记录的所有更新,在我的应用程序中处理它们,然后在必要时发送本地通知?