perform:@selector с помощью метода с параметрами

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

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

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

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

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

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

Спасибо

13
задан Georg Fritzsche 25 July 2010 в 12:44
поделиться

1 ответ

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

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

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

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

-(void) hideButton:(UIButton*) button

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

20
ответ дан 1 December 2019 в 22:54
поделиться