Inicializador de extensión de protocolo
Me gustaría saber cuál es el equivalente de protocolo para un inicializador en una clase simple que solo contiene funcionalidad de inicialización y solo está destinado a extenderse en una clase concreta.
Entonces, probablemente lo más fácil es mostrar el código: estoy buscando la extensión de protocolo equivalente a la siguiente:
import UIKit
class Thing {
var color:UIColor
init(color:UIColor) {
self.color = color
}
}
class NamedThing:Thing {
var name:String
init(name:String,color:UIColor) {
self.name = name
super.init(color:color)
}
}
var namedThing = NamedThing(name: "thing", color: UIColor.blueColor())
Esperaba que el código se viera así:
protocol Thing {
var color:UIColor {get set}
}
extension Thing {
init(color:UIColor) {
self.color = color
}
}
class NamedThing:Thing {
var name:String
var color:UIColor
init(name:String,color:UIColor) {
self.name = name
self.init(color:color)
}
}
He visto soluciones sugeridas en otras preguntas de StackOverflow (p. Ej.¿Cómo definir inicializadores en una extensión de protocolo?) pero no estoy seguro de que funcionen ni aborden específicamente este problema de parámetros adicionales en el inicializador de clase.