CKSubscription 在使用 FiresOnce 时返回查询必须至少有一种触发模式的错误
Posted
技术标签:
【中文标题】CKSubscription 在使用 FiresOnce 时返回查询必须至少有一种触发模式的错误【英文标题】:CKSubscription returns error that query must have at least one firing mode when using FiresOnce 【发布时间】:2016-02-18 07:47:05 【问题描述】:我有这个代码。这在使用 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】:除了 .FireOnce 之外,您还应该指明它是用于创建、更新还是删除。所以调用应该是这样的:
let subscription = CKSubscription(recordType: "PhotoRatings", predicate: predicate, options: [.FiresOnce, .FiresOnRecordCreation, .FiresOnRecordUpdate, .FiresOnRecordDeletion])
【讨论】:
先生,您是学者!以上是关于CKSubscription 在使用 FiresOnce 时返回查询必须至少有一种触发模式的错误的主要内容,如果未能解决你的问题,请参考以下文章
CKSubscription 在使用 FiresOnce 时返回查询必须至少有一种触发模式的错误
这是一种通过 CKSubscription 获取用户开始使用应用程序的通知的方法吗?
对 creatorUserRecordID 的 CKSubscription 永远不会到达
CKSubscriptionOptionsFiresOnRecordUpdate 类型的 CKSubscription 不起作用