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?

¿Fue útil?

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 :

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top