如果要使用与枚举大小写关联的值,则必须以这种方式进行切换:
enum SHError: Error {
case InvalidInputError(code: Int,message: String,info: [String:Any]? = [:])
case InvalidProcessingError(code: Int,info: [String:Any]? = [:])
var debugDescription: String {
let code: Int
switch self {
case .InvalidInputError(code: let codeValue,message: _,info: _):
code = codeValue
case .InvalidProcessingError(code: let codeValue,info: _):
code = codeValue
}
return "debug info: code: \(code)"
}
var localizedDescription: String {
return "description: \(self)"
}
}
或者您可以创建一个单独的计算变量var code: Int
并在debugDescription
中使用它:
enum SHError: Error {
case InvalidInputError(code: Int,info: [String:Any]? = [:])
var debugDescription: String {
return "debug info: code: \(code)"
}
var localizedDescription: String {
return "description: \(self)"
}
var code: Int {
switch self {
case .InvalidInputError(code: let code,info: _):
return code
case .InvalidProcessingError(code: let code,info: _):
return code
}
}
}
本文链接:https://www.f2er.com/3166724.html