小编ole*_*mar的帖子

无法在协议中分配属性 - Swift编译器错误

我在Swift中使用以下代码将我的头撞在墙上.我已经定义了一个简单的协议:

protocol Nameable {
    var name : String { get set }
}
Run Code Online (Sandbox Code Playgroud)

并通过以下方式实施:

class NameableImpl : Nameable {
    var name : String = ""
}
Run Code Online (Sandbox Code Playgroud)

然后我在另一个文件中有以下方法(不要问我为什么):

func nameNameable( nameable: Nameable, name: String ) {
    nameable.name = name
}
Run Code Online (Sandbox Code Playgroud)

问题是编译器在此方法中为属性赋值提供以下错误:

无法在"名字"中指定"名称"

我看不出我做错了什么......以下代码编译得很好:

var nameable : Nameable = NameableImpl()
nameable.name = "John"
Run Code Online (Sandbox Code Playgroud)

我确信这是我忽略的一些简单 - 我做错了什么?

ios swift

47
推荐指数
2
解决办法
1万
查看次数

标签 统计

ios ×1

swift ×1