我在 Xcode 7.3 中有一个 switch 语句(error: NSError
作为参数传递后),它的工作方式如下:
if let code:CKErrorCode = CKErrorCode(rawValue: error.code) {
switch code {
case .NotAuthenticated: etc...
}
}
在 Xcode 8 beta 6 中迁移到 Swift 3.0 后,我开始收到错误消息,提示无法识别 CKErrorCode。我仍在导入云,并且迁移将我的枚举小写,我尝试像这样更改它:
switch error.code {
case .notAuthenticated.rawValue: etc...
}
但这似乎也是错误的(测试版在我的系统上似乎有问题,所以错误不断消失和重新出现,所以当我现在编码时很难说它可能只是我的系统,但在我编译时它们仍然存在)。我一直在扫描https://swift.org/migration-guide/#known-migration-issues和https://swift.org/migration-guide/但还没有找到任何东西,当我用谷歌搜索 CKErrorCode 文档时(我假设它忽略了 Swift 3,因为它处于测试阶段)似乎说我以前的语法是 kosher。
谁能指出我正确的方向?枚举丢失了.rawValue
吗?枚举似乎已经改变,但我很难找到关于我应该做什么的文档。是否有可以识别这些枚举案例的 CKErrorCode 替代方法?请不要告诉我云套件错误处理的变化比这大得多:) 提前致谢。