我在跟踪Swift Tour他们有一个协议的例子

protocol ExampleProtocol {
     var simpleDescription: String { get }
     mutating func adjust()
}

那么练习就是
编写符合此协议的枚举。
如果我让xcode存根枚举,它就会这样做
enum SimpleEnum: ExampleProtocol {
    var simpleDescription: String
    func adjust() {
    }
    case foo
}

然后它给我一个错误“枚举不能包含存储的属性”。如果删除该属性,则会出现错误“类型'simplenum'不符合协议'exampleprotocol'”。
我今天刚开始学斯威夫特,所以我不知道正确的方法是什么。

最佳答案

好的,所以您得到的错误是因为必须计算所有属性。所以,在您的简单示例中,您可以这样做:

enum SimpleEnum: ExampleProtocol {
  case foo, bar

  var simpleDescription: String {
     switch self {
       case .foo: return "Foo"
       case .bar: return "Bar"
     }
  }

  func adjust() {

  }

}

09-10 06:31
查看更多