簡體   English   中英

Xcode 7.3.1 Swift“初始化程序未從其超類覆蓋指定的初始化程序”錯誤

[英]Xcode 7.3.1 Swift “initializer does not override a designated initializer from its superclass” error

import Foundation
import SpriteKit

class HGHero: SKSpriteNode {

var body: SKSpriteNode!
var arm: SKSpriteNode!
var leftFoot: SKSpriteNode!
var rightFoot: SKSpriteNode!

錯誤出現在這里:

override init () {

我不確定發生了什么。 我試圖覆蓋SKSpriteNode的默認初始化。

super.init(texture: nil, color: UIColor.blackColor(), size:    
CGSizeMake(32,44))
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

}

您只需要刪除override關鍵字。

class HGHero: SKSpriteNode {

    var body: SKSpriteNode!
    var arm: SKSpriteNode!
    var leftFoot: SKSpriteNode!
    var rightFoot: SKSpriteNode!

    init() {
        super.init(texture: nil, color: UIColor.blackColor(), size:
            CGSizeMake(32,44))
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }   
}

實際上的初始值設定項不會被繼承(就像方法或屬性那樣)。 因此,您不會覆蓋它們。

只是一個筆記

這些隱式未包裝的可選

var body: SKSpriteNode!
var arm: SKSpriteNode!
var leftFoot: SKSpriteNode!
var rightFoot: SKSpriteNode!

非常危險

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM