Question

Cette ligne de code fonctionne parfaitement

[self explodeBomb:obj];

mais si je le remplace par la ligne suivante, j'obtiens une exception NSInvalidArgument, la raison étant un sélecteur non reconnu.

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

La définition de la méthode est la suivante :

 -(void)explodeBomb:(SKNode *)bomb

Je sais, c'est sûrement moi qui ne comprends pas quelque chose de fondamental.Mais pourquoi je peux appeler la méthode directement sans problème, mais quand j'essaie d'utiliser le performSelector ça explose ?Pour mémoire, obj est défini comme un identifiant.J'ai essayé de changer la signature d'exploseBomb pour prendre un identifiant, puis de le lancer explicitement dans la méthode, mais cela a généré la même exception.Quelqu'un sait ce que je fais de mal ?

Était-ce utile?

La solution

Utiliser : et écris comme ci-dessous

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

Depuis votre méthode explodeBomb a un argument donc vous devez le préciser :

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top