performSelector arroja un argumento no válido, ¿por qué?
-
21-12-2019 - |
Pregunta
Esta línea de código funciona perfectamente.
[self explodeBomb:obj];
pero si lo reemplazo con la siguiente línea, obtengo una excepción NSInvalidArgument, debido a un selector no reconocido.
[self performSelector:@selector(explodeBomb) withObject:obj ];
La definición del método es la siguiente:
-(void)explodeBomb:(SKNode *)bomb
Lo sé, tengo que ser yo sin entender algo fundamental.Pero ¿por qué puedo llamar al método directamente sin problemas, pero cuando intento usar el performSelector
¿Explota?Para el registro, obj se define como una ID.Intenté cambiar la firma de explodeBomb para tomar una identificación y luego transmitirla explícitamente dentro del método, pero eso generó la misma excepción.¿Alguien sabe qué diablos estoy haciendo mal?
Solución
Usar :
y escribe como abajo
[self performSelector:@selector(explodeBomb:) withObject:obj ];
Desde tu método explodeBomb
tiene un argumento por lo que hay que especificar :