Я стучу головой о стену со следующим кодом в Свифте. Я определил простой протокол:
protocol Nameable {
var name : String { get set }
}
и реализовано с помощью:
class NameableImpl : Nameable {
var name : String = ""
}
а затем у меня есть следующий метод в другом файле (не спрашивайте меня почему):
func nameNameable( nameable: Nameable, name: String ) {
nameable.name = name
}
Проблема заключается в том, что компилятор дает следующую ошибку для присвоения свойства в этом методе:
не может назначить 'name' в 'nameable'
Я не вижу, что я делаю неправильно... Следующий код компилируется отлично:
var nameable : Nameable = NameableImpl()
nameable.name = "John"
Я уверен, что это простое, что я забыл - что я делаю неправильно?