这行代码完美无缺
[self explodeBomb:obj];
但如果我用以下行替换它,我会得到一个NSInvalidArgument异常,原因是无法识别的选择器。
[self performSelector:@selector(explodeBomb) withObject:obj ];
该方法的定义如下:
-(void)explodeBomb:(SKNode *)bomb
我知道,这必须是我不理解一些基本的东西。但是为什么我能够直接调用该方法没有任何问题,但是当我尝试使用performSelector
它会爆炸?对于记录,obj被定义为ID。我尝试更改explodeBomb的签名以获取ID,然后在方法中显式地将其强制转换,但是引发了相同的异常。谁知道我做错了什么?
答案 0 :(得分:3)
使用:
并写如下
[self performSelector:@selector(explodeBomb:) withObject:obj ];
由于您的方法explodeBomb
有参数,因此您必须指定: