在使用FiresOnce时,CKSubscription返回查询必须至少具有一个触发模式的错误

时间:2016-02-18 07:47:05

标签: swift cloudkit cksubscription

我有这个代码。在使用FiresOnRecordCreation的触发模式创建订阅时有效...但在FiresOnce上出现错误..错误是"查询订阅必须至少有一种类型的触发模式"

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

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

xcode在订阅时崩溃,但在FiresOnce上崩溃。

1 个答案:

答案 0 :(得分:1)

除了.FireOnce之外,您还应该指出是否有创建,更新或删除的内容。所以电话应该是这样的:

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