0

这行代码完美运行

[self explodeBomb:obj];

但是如果我用下面的行替换它,我会得到一个 NSInvalidArgument 异常,原因是一个无法识别的选择器。

 [self performSelector:@selector(explodeBomb) withObject:obj ];

该方法的定义如下:

 -(void)explodeBomb:(SKNode *)bomb

我知道,这一定是我不理解一些基本的东西。但是为什么我可以毫无问题地直接调用该方法,但是当我尝试使用performSelector它时它会爆炸?对于记录,obj 被定义为一个 ID。我尝试更改 explodeBomb 的签名以获取一个 ID,然后在方法中显式转换它,但这引发了相同的异常。有谁知道我做错了什么?

4

1 回答 1

3

使用:和编写如下

 [self performSelector:@selector(explodeBomb:) withObject:obj ];

由于您的方法explodeBomb有一个参数,所以您必须指定:

于 2014-01-09T07:39:15.010 回答