我定義了一個簡單的類:如何滿足包含初始化程序的協議?
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