Сценарий представляет себя там, где у меня есть объект, который хранит внешний @selector для дальнейшего использования. Я хотел бы добавить два вида селекторов. Простой, без параметров, например [object add:@selector(doSomething)]
, и более сложный, с одним параметром, например [object add:@selector(doSomething:)]
(обратите внимание на двоеточие). Допустим, селектор хранится в переменной SEL mySelector
.
При исполнении мне нужно выбрать между [anotherObject performSelector:mySelector]
или [anotherObject performSelector:mySelector withObject:userInfo]]
.
Я реализовал это решение, предоставив флаг BOOL, который избыточно хранит информацию о том, должна ли производительность быть с дополнительным параметром или без него. Однако, хотя я не могу найти это в документах, у меня есть чувство, что я также должен быть в состоянии спросить селектора что-то вроде -(BOOL)needsParameter
. Я знаю, например, что addTarget: action: в UIGestureRecognizer каким-то образом автоматически делает это различие.
Может ли кто-нибудь указать мне правильное направление?