如何解决当桥接到 NSError 实例时,代码如何归因于 Error 实例?
我想知道如何将整数错误代码归因于 Error
的实例,因为它们被桥接到 NSError
。
考虑以下代码:
import Foundation
enum CustomError: Error {
case john(guitar: String)
case paul(bass: String)
case george(guitar: String)
case ringo(drums: String)
case didDetectSomething
case didReceiveSomething
case undecodableDate(dateAsstring: String)
case unexpectedSomething(type: String)
case nildeviceidentifier
}
let errors: [CustomError] = [
.ringo(drums: "Ludwig"),.paul(bass: "Rickenbacker"),.george(guitar: "Fender"),.john(guitar: "Gibson"),.undecodableDate(dateAsstring: "String"),.didDetectSomething
]
errors.forEach { error in
print(error)
print(error.localizedDescription)
let nsError = error as NSError
print("code: \(nsError.code)")
}
它会输出:
ringo(drums: "Ludwig")
The operation Couldn’t be completed. (__lldb_expr_82.CustomError error 3.)
code: 3
paul(bass: "Rickenbacker")
The operation Couldn’t be completed. (__lldb_expr_82.CustomError error 1.)
code: 1
george(guitar: "Fender")
The operation Couldn’t be completed. (__lldb_expr_82.CustomError error 2.)
code: 2
john(guitar: "Gibson")
The operation Couldn’t be completed. (__lldb_expr_82.CustomError error 0.)
code: 0
undecodableDate(dateAsstring: "String")
The operation Couldn’t be completed. (__lldb_expr_82.CustomError error 4.)
code: 4
didDetectSomething
The operation Couldn’t be completed. (__lldb_expr_82.CustomError error 6.)
code: 6
似乎声明的顺序首先起作用(John 是 0,Paul 是 1 等),但随后 undecodableDate
的代码为 4,并在 didDetectSomething
之后声明了代码6.
所以我的问题是:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。