在游戏中调用addObject时,IOS 8 XCode 6 beta 4异常

时间:2014-07-24 07:03:46

标签: iphone xcode swift ios8

我正在关注本教程Tutorial space game,我得到了这个:主题1:BAD_EXEC_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)。一切都冻结之后,第一部分是好的我看到了船和背景,但是当敌人应该出来时,异常被抛出。代码如下:

func addAlien() {

    var alien: SKSpriteNode = SKSpriteNode(imageNamed: "alien")
    alien.physicsBody = SKPhysicsBody(rectangleOfSize: alien.size)
    alien.physicsBody.dynamic = true
    alien.physicsBody.categoryBitMask = alienCategory
    alien.physicsBody.contactTestBitMask = photonTorpedoCategory
    alien.physicsBody.collisionBitMask = 0


    let minX = alien.size.width/2
    let maxX = self.frame.size.width - alien.size.width/2
    let rangeX = maxX - minX
    var position:CGFloat = CGFloat(Int(arc4random())) % CGFloat(rangeX) + CGFloat(minX)

    alien.position = CGPointMake(position, self.frame.size.height + alien.size.height)

    self.addChild(alien)

    let minDuration = 2
    let maxDuration = 4
    let rangeOfDuration = maxDuration - minDuration
    var duration = Int(arc4random()) % Int(rangeOfDuration) + Int(minDuration)


    var actionArray: NSMutableArray = NSMutableArray()




    actionArray.addObject(SKAction.moveTo(CGPointMake(position, -alien.size.height), duration: NSTimeInterval(duration)))  <------- Exception in this line
    actionArray.addObject(SKAction.removeFromParent())

    alien.runAction(SKAction.sequence(actionArray))
    //alien.runAction(SKAction.sequence(actionArray))

}

我不知道出了什么问题,在另一个教程游戏中也是如此。函数addAlien()从:

调用
func updateWithTimeSinceLastUpdate(timeSinceLastUpdate: CFTimeInterval) {

    lastYieldInterval += timeSinceLastUpdate
    if lastYieldInterval > 1 {
        lastYieldInterval = 0
        addAlien()

    }
}

有任何帮助吗?感谢。

编辑:XCode的样子。XCode trace

1 个答案:

答案 0 :(得分:1)

我在本教程中遇到了同样的问题。

我已经修复了使用此代码修改持续时间的异常:

var duration = UInt32(arc4random()) % UInt32(rangeDuration) + UInt32(maxDuration)