выполнить: @selector, используя метод с параметрами - PullRequest
13 голосов
/ 25 июля 2010

У меня есть метод hideButton

-(void) hideButton:(UIButton) *button {
[button setHidden:YES];
}

, и я получаю сообщение об ошибке «не могу использовать объект в качестве параметра для метода».

Я хочу дать кнопкув качестве параметра метода при вызове этого

[self performSelector:@selector(hideButton:smallestMonster1)
withObject:nil afterDelay:1.0];

Как это можно сделать?как вышеупомянутая попытка не работает.Мне нужно иметь возможность указать кнопку в качестве параметра или, по крайней мере, сделать так, чтобы метод знал, какая кнопка вызывается для скрытия через 1 секунду.

Спасибо

1 Ответ

20 голосов
/ 25 июля 2010

Вы можете передать параметр в селектор через withObject параметр:

[self performSelector:@selector(hideButton:) withObject:smallestMonster1 afterDelay:1.0];

Обратите внимание, что таким образом вы можете передать не более 1 параметра.Если вам нужно передать больше параметров, вам нужно будет использовать класс NSInvocation.

Редактировать: Правильное объявление метода:

-(void) hideButton:(UIButton*) button

Вы должны поместить тип параметра в ().Ваш метод hideButton получает указатель на UIButton, поэтому вы должны поместить туда UIButton*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...