swift(spritekit) - 如何在块/闭包枚举后得到回调?

时间:2014-09-17 03:11:19

标签: objective-c swift closures sprite-kit block

我正在尝试在枚举中进行检查。如果我的条件语句被触发,那么我想退出父函数。问题是我认为这是异步发生的,所以偶尔它会在循环仍在执行时退出函数并导致内存错误。

    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在移动之前完成。有没有办法做到这一点?一个常规的循环替代方案也很棒..但是找不到那样的东西。

0 个答案:

没有答案