我正在尝试在枚举中进行检查。如果我的条件语句被触发,那么我想退出父函数。问题是我认为这是异步发生的,所以偶尔它会在循环仍在执行时退出函数并导致内存错误。
self.gameScene!.physicsWorld.enumerateBodiesAlongRayStart(self.position, end: randomPt, usingBlock: {
body, point, normal, stop in
if let node = body.node {
// we're intersecting with the enemy. lets try again
if node.name != nil && node.name == "shieldBox" {
abort = true
stop.memory = true
}
}
})
// this sometimes causes an error. the closure above is still executing!
if abort {
self.checkWayPoint()
return
}
我需要确保enumerateBodiesAlongRayStart在移动之前完成。有没有办法做到这一点?一个常规的循环替代方案也很棒..但是找不到那样的东西。