Есть ли способ проверить, если executeSelector: withObject: afterDelay: был зарегистрирован? - PullRequest
3 голосов
/ 12 октября 2011

Я хотел бы знать, есть ли способ определить, был ли вызван performSelector:withObject:afterDelay: для данного объекта (зарегистрирован для вызова).(Я мог бы использовать cancelPreviousPerformRequestsWithTarget:selector:object: и повторно позвонить performSelector:withObject:afterDelay:, хорошо, но мне интересно знать, есть ли альтернатива).

1 Ответ

2 голосов
/ 12 октября 2011

Лучше всего сделать так, чтобы вызываемый селектор мог безопасно вызываться несколько раз.

Например, используйте флаг в целевом объекте, чтобы отслеживать, был ли метод уже вызваннапример,

-targetSelector: (id) param
{
    if (!hasBeenRun) // hasBeenRun is a boolean intance variable
    {
        hasBeenRun = true;
        // other stuff
    }
}
...