![](/img/trans.png)
[英]'super.init' isn't called on all paths before returning from initializer
[英]Super.init isn't called on all paths before returning from initializer Error
我正在開發一個使用操縱桿的SpriteKit游戲。 我創建了一個操縱桿SKNode Class。
該類的代碼:
import Foundation
import SpriteKit
class Joystick: SKNode {
var joystickPad: SKShapeNode!
var joystickStick: SKShapeNode!
var colour: UIColor!
init(colour: UIColor) {
//constructor method
self.colour = colour;
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// lots of other code unrelated to the error
}
運行代碼時出現以下錯誤:
在從初始化程序返回之前,不會在所有路徑上調用Super.init
任何人都可以解釋錯誤並告訴我任何解決方案,我不明白為什么我得到那個錯誤,因為我認為我的班級只是一個類而不是超類。
任何幫助將非常感激。
附加信息:
我正在使用:
這是因為你的類繼承自SKNode
。
如果子類聲明了新的指定初始化程序,則應該調用超類init。 您可以在此處找到有關初始化的更多信息
您可以在init
添加super.init()
調用來修復錯誤。
init(colour: UIColor) {
//constructor method
self.colour = colour;
super.init()
}
因為我認為我的班級只是一個班級而不是超級班級
你的類是一個子類 。 因此,您必須在初始化程序中調用超類的指定初始值設定項:
init(colour: UIColor) {
self.colour = colour
super.init()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.