添加精灵到视图时的EXC_BAD_ACCESS

时间:2014-08-20 19:12:25

标签: swift sprite-kit osx-mavericks

我正在使用XB6在Swift 10.9上玩Sprite Kit。我的场景中有一些代码在鼠标点击位置添加了一个精灵。它因此加载了精灵:

    let location = theEvent.locationInNode(self)
    let sprite = SKSpriteNode(imageNamed:"Spaceship")
    sprite.position = location
    sprite.setScale(0.5)
    self.addChild(sprite)

此代码运行良好一段时间;我点击,精灵出现在我期望的地方。但如果我继续点击,最终第二行将导致:

 EXEC_BAD_ACCESS (code=EXC_I386_GPFLT)

(我希望他们让你复制错误......)。有时需要5次点击,有时需要20次,没有明显的模式。谷歌搜索错误,它显然发生在SK或斯威夫特的深处。

还有其他人看到这个吗?

2 个答案:

答案 0 :(得分:0)

这是touchesBegan功能吗?如果是这样,你使用了循环吗?

    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
     for touch in touches{
      let location = touch.locationInNode(self)
      let sprite = SKSpriteNode(imageNamed:"Spaceship")
      sprite.position = location
      sprite.setScale(0.5)
      self.addChild(sprite)
     }
    }

答案 1 :(得分:0)

确定这是beta版本中的错误。用6.0版本替换我的Xcode,然后从6.1B复制10.10 SDK修复了这个问题。