这行代码完美运行

[self explodeBomb:obj];

但如果我将其替换为以下行,则会收到 NSInvalidArgument 异常,原因是无法识别的选择器。

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

该方法的定义如下:

 -(void)explodeBomb:(SKNode *)bomb

我知道,这一定是我不理解一些基本的东西。但是为什么我能够直接调用该方法没有问题,但是当我尝试使用 performSelector 它爆炸了?对于记录 obj 被定义为 ID。我尝试更改explodeBomb的签名以获取ID,然后将其显式转换到方法内,但这引发了相同的异常。有人知道我到底做错了什么吗?

有帮助吗?

解决方案

使用 : 并像下面这样写

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

既然你的方法 explodeBomb 有一个参数,所以你必须指定 :

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top