Вы можете собрать имя селектора в строку и превратить строку в селектор:
for (int i=0; i<5; i++)
{
NSString *actionName = [NSString stringWithFormat:@"buttonClicked%i", i];
SEL action = NSSelectorFromString(actionName);
// …
}
Но так как кнопки, вероятно, будут выполнять что-то похожее, было бы лучше, если бы все они вызывали один и тот же метод, в котором вы бы просто разделили кнопки на tag
:
for (int i=0; i<5; i++)
{
// …
[button setTag:i];
[button addTarget:self action:@selector(buttonClicked:)
forControlEvents:UIControlEventTouchUpInside];
}
- (void) buttonClicked: (id) button
{
const int tag = [button tag];
switch (tag) { /* … */ }
}
Кстати, почему так много людей настаивают на написании NSInteger
, когда вы можете просто набрать int
? Есть ли разница? Нет, о чем я знаю.