2010-09-06 4 views
72

В моем приложении iPhone, я использую следующую функцию, чтобы сделать что-то после некоторой задержкиiPhone, как отменить стоп performSelector

- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay; 

Есть ли способ, чтобы отменить performSelector и прекратить делать некоторые вещи после задержки ?

ответ

177
[NSObject cancelPreviousPerformRequestsWithTarget:yourTarget selector:aSelector object: anArgument]; 
+1

Есть ли вариант для стрижа? – morroko

2

Я думал, что это может быть полезно для людей, чтобы увидеть некоторые фактический код, так что здесь два, которые я использую, чтобы остановить звуки и считывание, когда я иду на другой экран.

- (void)handleSwipeNext { 

    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(handleSwipeNext) object:nil]; 

    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(playPromptAndTarget) object:nil]; 

// do some swipe handling stuff 
} 
1

Swift 4.0 Версия:

NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(yourFunc), object: nil) 
Смежные вопросы