La documentación de Swift dice que las clases , estructuras y enumeraciones pueden ajustarse a los protocolos, y puedo llegar a un punto en el que todas se ajustan. Pero no puedo hacer que la enumeración se comporte como los ejemplos de clase y estructura :
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.simpleDescription
struct SimpleStructure: ExampleProtocol {
var simpleDescription: String = "A simple structure"
mutating func adjust() {
simpleDescription += " (adjusted)"
}
}
var b = SimpleStructure()
b.adjust()
let bDescription = b.simpleDescription
enum SimpleEnum: ExampleProtocol {
case Base
var simpleDescription: String {
get {
return "A Simple Enum"
}
set {
newValue
}
}
mutating func adjust() {
self.simpleDescription += ", adjusted"
}
}
var c = SimpleEnum.Base
c.adjust()
let cDescription = c.simpleDescription
No he descubierto cómo hacer simpleDescriptionque cambie como resultado de la llamada adjust(). Obviamente, mi ejemplo no hará eso porque el captador tiene un valor codificado, pero ¿cómo puedo establecer un valor para el simpleDescriptionmientras todavía se ajusta a ExampleProtocol?