2015-02-21 3 views
2

У меня есть игра SpriteKit, где я проверяю, имеют ли мои sknodes родительский узел во время метода обновления SKScene (проверяя, имеет ли их родительское свойство значение nil). Если у них нет родительского узла, я знаю, чтобы добавить их в SKScene.Выполняется ли метод addChild синхронно или асинхронно?

Я обеспокоен тем, что если метод addChild выполняется асинхронно, SKScene может начать метод addChild на одном конкретном фрейме обновления, но это может быть сделано не с помощью следующего кадра обновления. Поэтому, когда он проверяет родительское свойство того же узла на следующем кадре обновления, он все равно будет равен нулю, и, таким образом, SKScene попытается снова добавить тот же узел.

Если это произойдет, программа может выйти из строя, потому что добавление одного и того же узла дважды в SKScene вызывает ошибку.

Конечно, если addChild выполняется синхронно, тогда мне не нужно беспокоиться об этом, когда-либо происходящем.

Так кто-нибудь знает, если addChild выполняется синхронно или асинхронно? Или я просто слишком задумываюсь над этим, и об этом не о чем беспокоиться?

+2

Чтобы ответить на ваши вопросы: синхронно, насколько я знаю. И да. Также вы можете легко проверить его самостоятельно, добавить ребенка и сразу проверить children.count – LearnCocos2D

ответ

2

no метод синхронный, единственная «асинхронная кажущаяся» вещь об этом, будет чертежом. поскольку рисование происходит только «между итерациями runloop», видимый эффект addChild можно рассматривать как «отложен»

Смежные вопросы