Frage

Diese Codezeile funktioniert perfekt

[self explodeBomb:obj];

aber wenn ich es durch die folgende Zeile ersetze, erhalte ich eine NSInvalidArgument-Ausnahme, deren Grund ein nicht erkannter Selektor ist.

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

Die Definition der Methode lautet wie folgt:

 -(void)explodeBomb:(SKNode *)bomb

Ich weiß, das muss daran liegen, dass ich etwas Grundlegendes nicht verstehe.Aber warum kann ich die Methode ohne Probleme direkt aufrufen, aber wenn ich versuche, die zu verwenden performSelector es explodiert?Für den Datensatz ist obj als ID definiert.Ich habe versucht, die Signatur von explosionBomb zu ändern, um eine ID zu übernehmen und sie dann explizit in die Methode umzuwandeln, aber das hat die gleiche Ausnahme ausgelöst.Weiß jemand, was zum Teufel ich falsch mache?

War es hilfreich?

Lösung

Verwenden : und schreibe wie unten

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

Da deine Methode explodeBomb hat ein Argument, also müssen Sie es angeben :

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top