CKSubscription returns 错误,使用 FiresOnce 时查询必须至少有一种触发模式

CKSubscription returns error that query must have at least one firing mode when using FiresOnce

我有这个代码。这在使用 FiresOnRecordCreation 的触发模式创建订阅时有效...但在 FiresOnce 上出现错误.. 错误是 "Query Subscriptions must have at least one type of firing mode"

我的目标是我有一张照片。当照片的第一个评级发生时,我想收到通知。我不想在参考上使用 FiresOnRecordCreation,因为对于每个评级都会有一个太多的通知。我只想要收到第一个评级的第一个通知。

    let database = CKContainer.defaultContainer().publicCloudDatabase
    let predicate = NSPredicate(format:"owningPhoto == %@", ref)
    let subscription = CKSubscription(recordType: "PhotoRatings", predicate: predicate, options: .FiresOnce)

xcode 在订阅时崩溃,但在使用 FiresOnce 时崩溃。

除了 .FireOnce 之外,您还应该指出它是用于创建、更新还是删除。所以电话应该是这样的:

   let subscription = CKSubscription(recordType: "PhotoRatings", predicate: predicate, options: [.FiresOnce, .FiresOnRecordCreation, .FiresOnRecordUpdate, .FiresOnRecordDeletion])