Objective c 向NodeWithName@“发送消息;名称“;

Objective c 向NodeWithName@“发送消息;名称“;,objective-c,sprite-kit,skspritenode,Objective C,Sprite Kit,Skspritenode,我已经用一些公共方法创建了一个自定义SpriteNode类。 在项目的主场景中,我添加了该类的多个对象-每个对象具有不同的节点名称: obj.name = @"name1"; 在项目的后面部分,我想向特定对象发送消息,通过它们的名称进行计算。我试过: [[self childNodeWithName:[NSString stringWithFormat:@"name%i", counter]] customMethod]; 但这不起作用。一个可能的解决方案是将所需节点添加到数组中,并根据需要

我已经用一些公共方法创建了一个自定义SpriteNode类。 在项目的主场景中,我添加了该类的多个对象-每个对象具有不同的节点名称:

obj.name = @"name1";
在项目的后面部分,我想向特定对象发送消息,通过它们的名称进行计算。我试过:

[[self childNodeWithName:[NSString stringWithFormat:@"name%i", counter]] customMethod];

但这不起作用。

一个可能的解决方案是将所需节点添加到数组中,并根据需要循环查找所需的特定节点

for(SKSpriteNode *object in self.myArray) {

    if([object.name isEqualToString:@"name1"]) {
        [object methodName];
    }
}

断言
[self childNodeWithName:[NSString stringWithFormat:@“name%i”,counter]
确实返回了正确的对象。您需要将
childNodeWithName
(an
SKNode*
)的返回值强制转换为
MyCustomClass
指针以调用任何自定义方法。是否可以发布一个示例?试试这个
[(MyCustomClass*)[self childNodeWithName:[NSString stringWithFormat:@“name%i”,counter]]customMethod];
这很有效!谢谢!