Sto sbattendo la testa contro il muro con il seguente codice in Swift. Ho definito un semplice protocollo:Impossibile assegnare alla proprietà nel protocollo - Errore del compilatore Swift
protocol Nameable {
var name : String { get set }
}
ed implementato con:
class NameableImpl : Nameable {
var name : String = ""
}
e poi ho il seguente metodo in un altro file (non chiedetemi perché):
func nameNameable(nameable: Nameable, name: String) {
nameable.name = name
}
Il problema è che il compilatore fornisce il seguente errore per l'assegnazione della proprietà in questo metodo:
non può assegnare al 'nome' in 'nominabile'
non riesco a vedere quello che sto facendo male ... Il seguente codice compila bene:
var nameable : Nameable = NameableImpl()
nameable.name = "John"
Sono certo è qualcosa di semplice che ho trascurato - cosa sto sbagliando?
tl; dr cambiamento "lasciare myProtocolConformingItem" a "var myProtocolConformingItem" –
@ Matt Anche se questa proposta/soluzione sicuramente funziona ed è attualmente proposto dal compilatore, lo consideri un odore di codice? – damirstuhec
sto ricevendo errore 'uso del tipo non dichiarato di nameable' – Jack