Swift 如何在两个类之间正确地初始化
我想确保在类Home中可以调用类HUD,这两部分代码可以测试,但当我在Xcode中运行时,它崩溃并出现问题: “致命错误:对类“leftbehing.HUD”使用未实现的初始值设定项“init(size:)” 我希望有人能告诉我如何修理它,谢谢Swift 如何在两个类之间正确地初始化,swift,sprite-kit,Swift,Sprite Kit,我想确保在类Home中可以调用类HUD,这两部分代码可以测试,但当我在Xcode中运行时,它崩溃并出现问题: “致命错误:对类“leftbehing.HUD”使用未实现的初始值设定项“init(size:)” 我希望有人能告诉我如何修理它,谢谢 import UIKit import SpriteKit class HUD: SKScene { let positionX:CGFloat let positionY:CGFloat
import UIKit
import SpriteKit
class HUD: SKScene {
let positionX:CGFloat
let positionY:CGFloat
let sceneSelf: SKScene
let year = SKLabelNode()
let month = SKLabelNode()
let day = SKLabelNode()
let hour = SKLabelNode()
let minute = SKLabelNode()
init(positionX:CGFloat,positionY:CGFloat,scene:SKScene) {
self.positionX = positionX
self.positionY = positionY
self.sceneSelf = scene
super.init()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func hudShow() {
year.fontName = "Arial"
year.fontSize = 70
year.text = "This is a year"
year.fontColor = UIColor.whiteColor()
year.position = CGPoint(x: positionX , y: positionY)
sceneSelf.addChild(year)
}
}
类下调用类上调用
import SpriteKit
class Home: SKScene {
override func didMoveToView(view: SKView) {
let hud = HUD(positionX: frame.midX, positionY: frame.midY, scene: self)
hud.hudShow()
}
}
编辑:上传另一种方式,可以工作,但不是完美的方式,我想实现与初始而不是功能参考。
而不是调用
super.init()
调用super.init(size:CGSize)
您可以使用SKView的
bounds.size
属性传递到该初始值设定项中 而不是调用super.init()
调用super.init(大小:CGSize)
您可以使用SKView的
bounds.size
属性传递到该初始值设定项中 您是否试图在视图中呈现两个场景?一个SKView
一次只能呈现一个SKScene
。我认为他试图在菜单场景和游戏场景之间保留一个参考something@0x141E不,我想创建一个类,它可以作为一个通用的UI组(称为“HUD”)使用,它将出现在许多其他场景中,我也不想每次都设置这个函数,所以我需要一个首字母。@hamobi嘿,伙计,让我给你看另一个例子,你是不是想在视图中呈现两个场景?一个SKView
一次只能呈现一个SKScene
。我认为他试图在菜单场景和游戏场景之间保留一个参考something@0x141E不,我想创建一个类,它可以作为一个通用的UI组(称为“HUD”)使用,它将出现在许多其他场景中,我也不想每次都设置这个函数,所以我需要一个首字母。@hamobi嘿,伙计,让我再给你举一个例子