Вопрос

Эта строка кода работает отлично

[self explodeBomb:obj];

но если я заменю его следующей строкой, я получу исключение NSInvalidArgument, причиной которого является нераспознанный селектор.

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

Определение этого метода заключается в следующем:

 -(void)explodeBomb:(SKNode *)bomb

Я знаю, это, должно быть, из-за того, что я не понимаю чего-то фундаментального.Но почему я могу вызвать метод напрямую без проблем, но когда я пытаюсь использовать performSelector он взрывается?Для записи obj определяется как идентификатор.Я попытался изменить сигнатуру explodeBomb, чтобы она принимала идентификатор, а затем явно приводила его внутри метода, но это привело к тому же исключению.Кто-нибудь знает, какого черта я делаю не так?

Это было полезно?

Решение

Использование : и напишите, как показано ниже

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

Поскольку ваш метод explodeBomb имеет аргумент, поэтому вы должны указать :

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top