我正在制作一个小的自定义键盘,我在类中有一组需要在'override init()'中初始化的变量,如下所示:
class KeyboardViewController: UIInputViewController {
var button01: CharacterButton
var button02: CharacterButton
...
Run Code Online (Sandbox Code Playgroud)
和
override init() {
//Initialize buttons and assign attributes
button01 = CharacterButton.createButton("Q", labelOfButton: "Q")
button02 = CharacterButton.createButton("W?", labelOfButton: "W")
super.init()
}
Run Code Online (Sandbox Code Playgroud)
除此之外,我还添加了以下代码,因为从Xcode 6 beta 5开始显然需要它:
required init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
}
Run Code Online (Sandbox Code Playgroud)
但最后一段代码导致错误说:
属性'self.button01'未在super.init调用时初始化
当我已经初始化'button01'并在前'覆盖init()'函数中调用'super.init()'时,为什么会发生这种情况?这让我疯了.
在模拟器上,我注意到我的应用在应用标题旁边有一个红色圆圈,类似于新下载的应用旁边显示的蓝色圆圈,但只是红色.
这就是它的样子:

这意味着什么?