初始化程序不会覆盖其超类中的指定初始化程序,Swift 2.0
Initializer does not override a designated initializer from its superclass, Swift 2.0
通过此 Appcoder 教程 building a text to speech app tutorial 和 运行 进入 swift 1.2-> swift 2.0 功能。
演示项目中有一个 class... Xcode 7.1.1 在 IOS 10.11.1 下不喜欢,给我错误。 "initialiser doesn't override the designated initialiser from its super class" 覆盖 init() 语句,后跟错误 "Must call the designated initialiser of the superclass UISlider"。
好的,对 Swift 比较陌生;在我开始解决这个问题的地方,我有点迷失了。
class CustomSlider: UISlider {
var sliderIdentifier: Int!
override init() { <--- error here
super.init() <--- error here
sliderIdentifier = 0
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
sliderIdentifier = 0
}
}
这段代码应该说什么?
由于 UISlider
没有定义或继承 init()
作为指定的初始值设定项,您不能从子类 init
.
中调用它
class CustomSlider: UISlider {
var sliderIdentifier: Int!
required init() {
super.init(frame: CGRect.zero)
sliderIdentifier = 0
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
sliderIdentifier = 0
}
}
在这种情况下,您可以分解出 sliderIdentifier
的初始化并仅继承所有 UISlider
的初始化器:
class CustomSlider: UISlider {
var sliderIdentifier: Int! = 0
}
有关详细信息,请阅读 The Swift Programming Language 中标题为“指定构造器和便利构造器”的部分。
通过此 Appcoder 教程 building a text to speech app tutorial 和 运行 进入 swift 1.2-> swift 2.0 功能。
演示项目中有一个 class... Xcode 7.1.1 在 IOS 10.11.1 下不喜欢,给我错误。 "initialiser doesn't override the designated initialiser from its super class" 覆盖 init() 语句,后跟错误 "Must call the designated initialiser of the superclass UISlider"。
好的,对 Swift 比较陌生;在我开始解决这个问题的地方,我有点迷失了。
class CustomSlider: UISlider {
var sliderIdentifier: Int!
override init() { <--- error here
super.init() <--- error here
sliderIdentifier = 0
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
sliderIdentifier = 0
}
}
这段代码应该说什么?
由于 UISlider
没有定义或继承 init()
作为指定的初始值设定项,您不能从子类 init
.
class CustomSlider: UISlider {
var sliderIdentifier: Int!
required init() {
super.init(frame: CGRect.zero)
sliderIdentifier = 0
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
sliderIdentifier = 0
}
}
在这种情况下,您可以分解出 sliderIdentifier
的初始化并仅继承所有 UISlider
的初始化器:
class CustomSlider: UISlider {
var sliderIdentifier: Int! = 0
}
有关详细信息,请阅读 The Swift Programming Language 中标题为“指定构造器和便利构造器”的部分。