无法用覆盖初始化方法调用类
问题描述:
我想从教程中创建一个简单的游戏,但代码似乎没有工作,所以我认为Swift自写入以来已经发生了变化。我在Swift 2.2中使用XCode 7.3.1。无法用覆盖初始化方法调用类
我创建一个从SKScene继承并重写原来的init方法一个新的类:
import SpriteKit
class BallScene: SKScene {
override init (size: CGSize) {
super.init(size: size)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
的GameViewController类无法创建BallScene类和报告错误的实例(标记为*>):无法调用初始化为“BallScene”类型的参数列表“(尺寸:CGSize,() - >())”
import UIKit
import SpriteKit
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
*> let scene = BallScene(size: view.bounds.size) {
// Configure the view.
let skView = self.view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
skView.ignoresSiblingOrder = true
*> scene.scaleMode = .AspectFill
*> skView.presentScene(scene)
}
}
//more code
}
显然参数类型初始化的被拒绝,但一切似乎好的。
任何想法?
非常感谢。 Kw
答
不太清楚你在做什么。为什么在启动BallScene
后有一个{}
大括号。我尝试你的代码,删除{}
作品。
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let scene = BallScene(size: view.bounds.size)
// Configure the view.
let skView = self.view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
skView.ignoresSiblingOrder = true
scene.scaleMode = .aspectFill
skView.presentScene(scene)
}
//more code
}
如果这不是你想要的,你能解释一下为什么你尝试有后{}
的init-ING BallScene
?
谢谢,非常有帮助。 – Kwangle