Ho il seguente protocollo e una classe che si conforma ad esso:Impossibile creare una matrice di tipi conformi ad un protocollo a Swift
protocol Foo{
typealias BazType
func bar(x:BazType) ->BazType
}
class Thing: Foo {
func bar(x: Int) -> Int {
return x.successor()
}
}
Quando provo a creare un array di Foos, ottengo un errore dispari:
var foos: Array<Foo> = [Thing()]
Protocol Foo can only be used as a generic constraint because it has Self or associated type requirements.
OK, quindi può essere utilizzato solo se ha un requisito tipo associato (che lo fa), ma per qualche motivo si tratta di un errore ?? WTF ?!
Non sono sicuro Capisco perfettamente quello che il compilatore sta cercando di dirmi ...
possibile duplicato (http://stackoverflow.com/questions/26267597/cannot-assign-class-instance-to -its-protocol-type) – Antonio