IOS 8 XCode 6 бета 4 исключение при вызове addObject в игре

Я слежу за этим уроком Пространство игры Учебник и получаю следующее: Поток 1: BAD_EXEC_INSTRUCTION(code=EXC_I386_INVOP,subcode=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

1 ответ

Решение

У меня была такая же проблема с этим уроком.

Я исправил это исключение, изменив продолжительность, используя этот код:

var duration = UInt32(arc4random()) % UInt32(rangeDuration) + UInt32(maxDuration)
Другие вопросы по тегам