Ios EXC_错误_指令错误
我在Xcode 6中多次遇到这个问题。问题是,我有一个球跑动,当他击中一个街区,他死了。不过他会跳。但是第一个街区总是撞车。如果我只是正常地滚动,而不是在空中,然后撞到第一个挡块,它就会冻结并关闭 它给了我这个错误: 线程1:EXC_BAD_指令(代码=EXC_1386_INVOP,子代码=0x0) 第2行和第7行具有绿色背景(计算空间) 这是错误行:Ios EXC_错误_指令错误,ios,swift,sprite-kit,exc-bad-instruction,Ios,Swift,Sprite Kit,Exc Bad Instruction,我在Xcode 6中多次遇到这个问题。问题是,我有一个球跑动,当他击中一个街区,他死了。不过他会跳。但是第一个街区总是撞车。如果我只是正常地滚动,而不是在空中,然后撞到第一个挡块,它就会冻结并关闭 它给了我这个错误: 线程1:EXC_BAD_指令(代码=EXC_1386_INVOP,子代码=0x0) 第2行和第7行具有绿色背景(计算空间) 这是错误行: func didBeginContact(contact:SKPhysicsContact) { died() } func died
func didBeginContact(contact:SKPhysicsContact) {
died()
}
func died() {
if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
let skView = self.view as SKView
skView.ignoresSiblingOrder = true
scene.size = skView.bounds.size
scene.scaleMode = .AspectFill
skView.presentScene(scene)
}
}
EXC_BAD_指令意味着代码中的某个地方有一个断言。您提供的唯一一行可以抛出断言的代码是:
let skView = self.view as SKView
如果self.view无法强制转换为SKView,它将断言。似乎self.view实际上不是一个SKView
可以肯定的是,您可以像处理场景一样执行可选的演员阵容:
if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
if let skView = self.view as? SKView {
skView.ignoresSiblingOrder = true
scene.size = skView.bounds.size
scene.scaleMode = .AspectFill
skView.presentScene(scene)
}
}
我相信我已经找到了解决你问题的办法 将skView=self.view更改为skView
if let skView = self.view as SKView!
应该工作Idon@zneak,我认为错误的部分是“抛出a”,我仍然习惯于例外:)。我将其更新为只说“它将断言”@zneak-See@zneak我认为“断言”是正确的:框架断言故意向处理器抛出错误指令以引发异常。然后我遇到了这个问题:来自“SKView”的条件向下广播“SKView”总是成功的。我还不是一个很好的Xcode编码员,但这正是我尝试的结果。请帮我除掉这个虫子,因为我真的不喜欢它。
if let skView = self.view as? SKView! {
skView.ignoresSiblingOrder = true
scene.size = skView.bounds.size
scene.scaleMode = .AspectFill
skView.presentScene(scene)
}