Pergunta

Esta linha de código funciona perfeitamente

[self explodeBomb:obj];

mas se eu substituí-lo pela linha a seguir, recebo uma exceção NSInvalidArgument, cujo motivo é um seletor não reconhecido.

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

A definição do método é a seguinte:

 -(void)explodeBomb:(SKNode *)bomb

Eu sei, deve ser eu que não entendo algo fundamental.Mas por que consigo chamar o método diretamente sem problemas, mas quando tento usar o método performSelector isso explode?Para o registro, obj é definido como um ID.Tentei alterar a assinatura do explodeBomb para pegar um ID e depois convertê-lo explicitamente dentro do método, mas isso gerou a mesma exceção.Alguém sabe o que diabos estou fazendo de errado?

Foi útil?

Solução

Usar : e escreva como abaixo

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

Desde o seu método explodeBomb tem um argumento, então você deve especificar :

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top