运行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中使用。