executeSelector и сопоставление cancelPreviousPerformRequestWithTarget - PullRequest
0 голосов
/ 16 февраля 2011

Если я начну что-то, используя это:

> [self performSelector:@selector(runThis:) 
>    withObject:thisObject  
>    afterDelay:5.0];

Какой 1 я должен позже использовать, чтобы отменить это, избегая когда-либо запущенного runThis:

1> [NSObject cancelPreviousPerformRequestsWithTarget:self];

или

2> [NSObject cancelPreviousPerformRequestsWithTarget:self 
2>    selector:@selector(runThis:) 
2>    object:nil];

Даже не уверен, какая разница на самом деле между 1 и 2.

Отменяет ли # 1 ЛЮБОЙ / ВСЕ МОИ PerforSelector, независимо от их имени?

И # 2отмена только одного, в частности "runThis:"?

(Что если бы у меня было 3 разных executeSelector, выполняющих "runThis:"? Как мне указать, какой из них отменить ... используя # 1 или # 2?)

# 1, кажется, правильно отменяет вещи.

# 2, кажется, ничего не отменяет .... никогда.

Имеет ли значение, что я передаю thisObject при запуске... и ноль при отмене?

1 Ответ

1 голос
/ 16 февраля 2011

IIRC либо один в порядке;вторая дает вам более детальный контроль.

Для # 2 вам нужно будет передать объект, который возвращает YES для -isEqual:.nil не означает «что-нибудь» для этого метода, в отличие от NSNotification.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...