我在跟踪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() {
}
}