CloudKit Zone CKSubscriptionOptions
Posted
技术标签:
【中文标题】CloudKit Zone CKSubscriptionOptions【英文标题】: 【发布时间】:2015-06-28 23:56:11 【问题描述】:我在为自定义区域设置区域订阅时遇到错误。
let mainZoneID=CKRecordZoneID(zoneName: "MainZone", ownerName: CKOwnerDefaultName)
let subscription=CKSubscription(zoneID: mainZoneID, options: CKSubscriptionOptions.FiresOnRecordCreation)
我收到的错误消息是“*** 由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'CKSubscriptionTypeRecordZone 订阅与订阅选项 1 不兼容'”
我发现了一个link,它显示了CKSubscriptionOptions.allZeros
的使用,但至少在ios 9 SDK 中这不是一个选项。
Apple 文档参考将它设置为 0,但是当我这样做时,它不会编译。
来自文档:“订阅的配置选项。您必须为此参数指定 0。区域订阅目前不支持任何选项。”
见下面的代码 sn-p:
let subscription=CKSubscription(zoneID: mainZoneID, options: 0)
编译器错误说我不能使用 Int 作为选项。有谁知道如何在自定义区域上设置区域订阅?这是一个错误吗?
【问题讨论】:
区域只允许在私有数据库中。那是你用的吗? @EdwinVermeer 是的,我使用的是私有数据库,有一个名为“MainZone”的区域 你试过CKSubscriptionOptions(rawValue:0) @EdwinVermeer,我没有尝试过,我会在今天晚些时候尝试并告诉你它是否有效。 @EdwinVermeer,我尝试了您的建议:subscription = CKSubscription(zoneID: "MainZone", options: CKSubscriptionOptions(rawValue:0) )
但这仍然给我一个编译器错误“找不到接受类型为 '(zoneID: String,选项:CKSubscriptionOptions)'"
【参考方案1】:
确实,CKSubscriptionOptions 枚举没有 0 选项。您可以使用 CKSubscriptionOptions(rawValue:0) 强制值为 0
【讨论】:
以上是关于CloudKit Zone CKSubscriptionOptions的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能从 Xcode 或 CloudKit Dashboard 查询 CloudKit?
CloudKit iOS 10 错误:帐户无权访问 CloudKit 帐户