
protocol ExampleProtocol { var simpleDescription: String { get set } mutating func adjust()}class SimpleClass: ExampleProtocol { var simpleDescription: String = "A very simple class." var anotherProperty: Int = 69105 func adjust() { simpleDescription += " Now 100% adjusted." }}var a = SimpleClass()a.adjust()let aDescription = a.simpleDescriptionstruct SimpleStructure: ExampleProtocol { var simpleDescription: String = "A simple structure" mutating func adjust() { simpleDescription += " (adjusted)" }}var b = SimpleStructure()b.adjust()let bDescription = b.simpleDescriptionenum SimpleEnum: ExampleProtocol { case Base var simpleDescription: String { get { return "A Simple Enum" } set { newValue } } mutating func adjust() { self.simpleDescription += ",adjusted" }}var c = SimpleEnum.Basec.adjust()let cDescription = c.simpleDescription 我还没有想出如何获得simpleDescription改变调用adjust()的结果。我的例子显然不会这样做,因为getter有一个硬编码的值,但是如何为simpleDescription设置一个值,同时仍然符合ExampleProtocol?
这是我的尝试:protocol ExampleProtocol { var simpleDescription: String { get } mutating func adjust()}enum ExampleEnum : ExampleProtocol { case Base,Adjusted var simpleDescription: String { return self.getDescription() } func getDescription() -> String { switch self { case .Base: return "A simple description of enum" case .Adjusted: return "Adjusted description of enum" } } mutating func adjust() { self = ExampleEnum.Adjusted }}var c = ExampleEnum.Basec.adjust()let cDescription = c.simpleDescription 总结 以上是内存溢出为你收集整理的枚举 – 如何使枚举符合Swift中的协议?全部内容,希望文章能够帮你解决枚举 – 如何使枚举符合Swift中的协议?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)