这行代码完美地工作
[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
有一个参数,因此您必须指定:
关于ios - performSelector抛出无效参数,为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21014239/