我可以结合一个SKAction runBlock与SKNode - runAction:completion:?函数



当我调用runAction:completion:?函数,并传入SKAction runBlock动作,则回调例程永远不会被调用。

嗯,这可能是因为SpriteKit无法知道你的块何时停止影响有问题的节点。如果API设计得更好也许它会给你一种从block中调用completion的方法,但它没有。但是,你可以在自己的代码块中调用在completion块中调用的任何内容。

编辑:是的,被调用(在这种情况下SpriteKit)确实知道你的块何时结束执行,但你的块可能执行延迟调用,这将进一步影响有问题的节点,所以它不能确定动作真的结束了。例如,考虑一个触发定时器的块,该定时器随时间变化特定属性。

最新更新