1. При использовании протоколов для делегатов. У протокола есть возможность пометить методы @optional и тогда метод необязательно имплементировать в кслассе реализующем протокол. Класс чей это делагат уже проверяет отвечает объект нужному селектору или нет. если отвечает, то вызываем его, если нет, то поведение по умолчанию
2. вы можете передавать target и selector как параметры и использовать вот так:
[target performSelector:selector];
или для безопасности проверить что такой селектор есть перед вызовом
if ([target respondsToSelector:selector]) {
[target performSelector:selector];
}