我正在实现try catch enum:
enum processError: Error, CustomStringConvertible {
case one
var localizedDescription: String{
return "one"
}
case two
var localizedDescription: String {
return "two"
}
}
但我收到以下错误:
type processError不符合协议CustomStringConvertible
但是如果我在第二种情况下更改变量的名称,我就不会收到错误:
enum processError: Error, CustomStringConvertible {
case one
var localizedDescription: String{
return "one"
}
case two
var description: String {
return "two"
}
}
我的问题是为什么我不能为所有情况使用相同的变量名称?
我真的很感谢你的帮助。
答案 0 :(得分:5)
问题是CustomStringConvertible
协议需要一个属性:
var description: String
您需要拥有description
属性,否则您将收到不符合协议的错误。
我也建议采用这种方法:
enum processError: Error, CustomStringConvertible {
case one
case two
var description: String {
switch self {
case .one:
return "one"
case .two:
return "two"
}
}
}