我在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