创建订阅时出现“CKSubscriptionTypeRecordZone 订阅与订阅选项 7 不兼容”

Posted

技术标签:

【中文标题】创建订阅时出现“CKSubscriptionTypeRecordZone 订阅与订阅选项 7 不兼容”【英文标题】:"CKSubscriptionTypeRecordZone subscriptions are incompatible with subscription options 7" when creating a subscription 【发布时间】:2014-07-22 15:11:37 【问题描述】:

我正在尝试使用以下代码来创建 CloudKit 订阅:

let container = CKContainer.defaultContainer()
let database = container.publicCloudDatabase
let recordZone = CKRecordZone.defaultRecordZone()

let subscription = CKSubscription(zoneID: recordZone.zoneID, options: .FiresOnRecordCreation | .FiresOnRecordUpdate | .FiresOnRecordDeletion)

database.saveSubscription(subscription) (subscription: CKSubscription!, error: NSError!) in
    if error
    
        NSLog("Error: %@", error)
    
    else if subscription
    
        NSLog("Saved subscription: %@", subscription)
    

它失败并出现此错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'CKSubscriptionTypeRecordZone subscriptions are incompatible with subscription options 7'

这是什么意思,我该如何解决?我希望在创建、更新或删除记录时收到通知。

【问题讨论】:

我想您可以创建多个订阅,但我希望在某处找到明确说明的内容,但我找不到任何东西。对于它的价值,它对于任何不是 1、2、4 或 8 的值都会崩溃,这表明不支持将选项组合在一起,这是我没有预料到的,但我想就是这样。 我想通了,@0x7fffffff - 它就在文档中。我应该开始阅读那些东西。 【参考方案1】:

呃!来自the docs:

subscriptionOptions

订阅的配置选项。您必须为此参数指定 0。区域订阅目前不支持任何选项。

指定nil 有效,但我可能会采用不同的方法。

【讨论】:

以上是关于创建订阅时出现“CKSubscriptionTypeRecordZone 订阅与订阅选项 7 不兼容”的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Apps 脚本创建 Strava Webhook 订阅时出现问题

Google PubSub:使用 AppEngine 推送端点订阅时出现 SSL 错误

选择“使用信用卡或借记卡付款”时出现 PayPal 订阅按钮错误

尝试使用 Azure CLI 创建 Web 应用时出现限制错误

尝试防止订阅两次时出现 ObjectUnsubscribedError

尝试订阅 Outlook 事件时出现 HTTP 响应 401 - Java