Лучше всего сделать так, чтобы вызываемый селектор мог безопасно вызываться несколько раз.
Например, используйте флаг в целевом объекте, чтобы отслеживать, был ли метод уже вызваннапример,
-targetSelector: (id) param
{
if (!hasBeenRun) // hasBeenRun is a boolean intance variable
{
hasBeenRun = true;
// other stuff
}
}