Может быть полезно знать, как это сделать, когда вы не можете использовать executeSelector, возможно, потому что строка селектора должна использоваться в методе протокола:
Чтобы разрешить селектору поддерживать параметры, он должен быть указанследующим образом:
NSString *stringForSelector = @"doSomethingAwesome:"; // notice the colon
Допустим, мы собираемся обработать жест касания
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:NSSelectorFromString(stringForSelector)];
Класс UIGestureRecognizer позволяет использовать сам распознаватель в обратном вызове действия:
- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer;
Чтобы сделать что-то потрясающее на Tap, мы могли бы написать:
- (void)doSomethingAwesome:(UITapGestureRecognizer *)tapGesture
{
// gesture handling with UIGestureRecognizer availability
}