2010-09-06 28 views
72

Trong ứng dụng iPhone của tôi, tôi đang sử dụng các chức năng sau đây để làm điều gì đó sau khi một số chậm trễiPhone làm thế nào để hủy bỏ stop performSelector

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

Có cách nào để hủy performSelector này và dừng thực hiện một số điều sau độ trễ ?

Trả lời

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

Có bất kỳ tùy chọn cho nhanh? – morroko

2

Tôi nghĩ có thể hữu ích khi mọi người nhìn thấy một số mã thực, vì vậy đây là hai cách tôi sử dụng để dừng âm thanh và vuốt khi tôi chuyển sang màn hình khác.

- (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 phiên bản:

NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(yourFunc), object: nil) 
Các vấn đề liên quan