繁体   English   中英

类型不符合协议CustomStringConvertible

[英]Type does not conform to protocol CustomStringConvertible

我正在实现try catch枚举:

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"
    }
}

我的问题是为什么我不能为所有情况使用相同的变量名称?

我真的很感谢你的帮助。

问题是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"
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM