SpriteKit Найти последний созданный узел с именем

Мне интересно, как найти узел с именем, которое было недавно создано.

   [myWorld enumerateChildNodesWithName:name usingBlock:^(SKNode *node, BOOL *stop) {
     mysterious code
    }];

Но эта функция проходит через все узлы с var nameЯ хочу просто сделать свой код на недавно созданном узле.

Я имею в виду, у меня есть узел с именами:

nodeId1   -old
nodeId1   -old
nodeId1   -old
nodeId1   -newest already created

1 ответ

Решение

Вы можете просто назначить каждому узлу, который вы добавляете, один и тот же ивар. По определению, ивар будет ссылаться на узел, который был добавлен последним.

Объявите ивар:

@implementation YourClass
{
    __weak CCNode* _lastAddedNode;
}

При добавлении узла:

[self addChild:someSprite];
_lastAddedNode = someSprite;

Если вы хотите иметь доступ к узлу по имени, вам нужно дать ему уникальное имя. Но это не обязательно с подходом ivar.

Другие вопросы по тегам