我定义了一个简单的类:如何满足包含初始化程序的协议?
class MyClass {
var name:String?
required init() {
println("init")
}
}
我可以在这样的扩展添加一个新的初始化:
extension MyClass {
convenience init(name: String) {
self.init()
self.name = name
}
}
,一切工作正常。
但只要我定义新初始化的协议:
protocol MyProtocol {
init(name:String)
}
,让我延期确认该协议:
extension MyClass : MyProtocol {
convenience init(name: String) {
self.init()
self.name = name
}
}
我收到以下错误:
Initializer requirement 'init(name:)' can only be satisfied by a
required
initializer in the definition of non-final class 'MyClass'
什么在这里?
(顺便说一句:我不能让我的final
类,因为这仅仅是一个更复杂的用例的提取物)
这可能是目前的问题:https://devforums.apple.com/message/1057171#1057171 – Klaas 2014-10-26 22:29:44