Шаблон простого делегирования: ваш объект отвечает на сообщение aMethod, затем он проверяет, отвечает ли какой-либо другой объект на сообщение aMethod, посылая [otherObject RespondsToSelector: @selector (aMethod)], который возвращает bool. Если другойObject делает, вы можете отправить сообщение.
Больше технических преимуществ NSInvocation: если вашему объекту отправлено сообщение, на которое он не может ответить (crazyMethodName), то forwardInvocation вызывается для вашего объекта. Реализация по умолчанию forwardInvocation для NSObject просто вызывает didNotRecognizeSelector, потому что ваш объект не распознает селектор. Вы можете переопределить реализацию forwardInvocation по умолчанию, проверив, реагирует ли другой объект на селектор вызова, и, если это так, вызовет этот вызов для другого объекта.