我在Swift中用下面的代碼將我的頭撞在牆上。我已經定義了一個簡單的協議:不能分配給協議中的屬性 - Swift編譯器錯誤
protocol Nameable {
var name : String { get set }
}
,並實現與:
class NameableImpl : Nameable {
var name : String = ""
}
,然後我在另一個文件中的下列方法(不要問我爲什麼):
func nameNameable(nameable: Nameable, name: String) {
nameable.name = name
}
問題是編譯器在此方法中爲屬性賦值給出以下錯誤:
不能分配到「可命名的」名字'
我看不到我在做什麼錯了...下面的代碼編譯好:
var nameable : Nameable = NameableImpl()
nameable.name = "John"
我肯定這是簡單的我忽略了 - 我做錯了什麼?
TL;博士變「讓myProtocolConformingItem」到「變種myProtocolConformingItem」 – 2015-05-06 21:06:54
@馬特雖然這個建議/解決方案肯定作品,目前甚至由編譯器提出,你認爲它是一種代碼味道? – damirstuhec 2016-01-11 06:37:17
我得到錯誤'使用未聲明類型的可命名' – Jack 2017-08-04 14:17:01