添加精灵到视图时EXEC_BAD_ACCESS



我正在使用XB6在10.9的Swift中使用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或Swift内部发生了一些事情。

还有人看到了吗?

是否在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)
     }
    }

好的,这原来是一个错误的测试版构建。将我的Xcode替换为6.0版本,然后从6.1B复制10.10 SDK可以解决此问题。

最新更新