iOS模拟器在removeFromParent(Xcode Beta5)上与EXC_BAD_ACCESS崩溃

时间:2014-08-14 14:27:39

标签: ios swift xcode5 ios-simulator sprite-kit

运行Xcode beta 5,在运行新创建的项目(游戏模板)时,只需更改GameScene.swift中的touchesBegan()就会出现以下问题

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    for i in 0...100 {
        var trail = SKSpriteNode()
        trail.anchorPoint = CGPointMake(0.5, 0)
        trail.name = "trail"
        self.addChild(trail)
    }

    //delete old trails
    self.enumerateChildNodesWithName("trail") {
        node, stop in
        node.runAction(SKAction.removeFromParent())
    }
}

只有完成的事情是添加一些名称设置的childNodes,然后尝试使用SKAction.removeFromParent删除它们。这在使用EXC_BAD_ACCESS的模拟器中崩溃。

在Playground中使用时,相同的代码可以正常工作

import SpriteKit

var node = SKNode()

for i in 0...100 {
    var trail = SKSpriteNode()
    trail.anchorPoint = CGPointMake(0.5, 0)
    trail.name = "trail"
    node.addChild(trail)
}

//delete old trails
node.enumerateChildNodesWithName("trail") {
    node, stop in
    node.runAction(SKAction.removeFromParent())
}

模拟器崩溃后,xcode挂起堆栈跟踪 SKCRenderer :: preprocessSpriteImp()

这曾经在XCode beta 3中使用。

0 个答案:

没有答案