addChild 方法是同步完成还是异步完成?

Is the addChild method done synchronously or asynchronously?

我有一个 SpriteKit 游戏,我在 SKScene 的更新方法中检查我的 sknodes 是否有父节点(通过检查它们的父节点 属性 是否为 nil)。如果他们没有父节点,那么我知道将它们添加到 SKScene 中。

我担心如果 addChild 方法是异步完成的,那么 SKScene 可能会在一个特定的更新帧上开始 addChild 方法,但可能不会在下一个更新帧上用该方法完成。因此,当它在下一个更新帧检查同一节点的父节点 属性 时,它仍然为零,因此 SKScene 将尝试再次添加相同的节点。

如果发生这种情况,程序可能会失败,因为将同一节点两次添加到 SKScene 会导致错误。

当然,如果 addChild 是同步完成的,那么我就不必担心会发生这种情况。

那么有谁知道addChild是同步完成的还是异步完成的?还是我只是想得太远了,这没什么好担心的?

不,该方法是同步的,唯一 'asynchronous seeming' 的事情就是绘图。由于绘图只发生 'between runloop iterations' addChild 的可见效果可以看作 'delayed'