【发布时间】:2015-02-21 05:45:00
【问题描述】:
我有一个 SpriteKit 游戏,我在 SKScene 的更新方法期间检查我的 sknodes 是否有父节点(通过检查它们的父属性是否为 nil)。如果它们没有父节点,那么我知道将它们添加到 SKScene。
我担心如果 addChild 方法是异步完成的,那么 SKScene 可能会在一个特定的更新帧上开始 addChild 方法,但它可能不会在下一个更新帧上用该方法完成。因此,当它在下一个更新帧检查同一个节点的父属性时,它仍然是 nil,因此 SKScene 将尝试再次添加同一个节点。
如果发生这种情况,程序可能会失败,因为将同一节点两次添加到 SKScene 会导致错误。
当然,如果 addChild 是同步完成的,那么我不必担心会发生这种情况。
那么有谁知道 addChild 是同步完成还是异步完成?还是我只是想得太远了,这没什么好担心的?
【问题讨论】:
-
回答你的问题:据我所知是同步的。是的。您也可以轻松地自己验证,添加一个孩子并立即检查 children.count
标签: objective-c asynchronous sprite-kit sknode