【发布时间】:2016-01-14 23:01:11
【问题描述】:
我想知道一个简单类中的初始化器的等效协议是什么,它只包含初始化功能并且只打算在具体类中扩展。
所以可能最简单的方法是显示代码 - 我正在寻找与以下内容等效的协议扩展:
import UIKit
class Thing {
var color:UIColor
init(color:UIColor) {
self.color = color
}
}
class NamedThing:Thing {
var name:String
init(name:String,color:UIColor) {
self.name = name
super.init(color:color)
}
}
var namedThing = NamedThing(name: "thing", color: UIColor.blueColor())
我希望代码看起来像这样:
protocol Thing {
var color:UIColor {get set}
}
extension Thing {
init(color:UIColor) {
self.color = color
}
}
class NamedThing:Thing {
var name:String
var color:UIColor
init(name:String,color:UIColor) {
self.name = name
self.init(color:color)
}
}
我在其他 StackOverflow 问题中看到了建议的解决方案(例如 How to define initializers in a protocol extension?),但我不确定它们是否有效,也不确定它们是否专门解决了类初始化程序中附加参数的问题。
【问题讨论】:
标签: swift initialization swift2 protocols