iPhone, wie man stop performSelector abbricht

74

In meiner iPhone-App verwende ich die folgende Funktion, um nach einiger Verzögerung etwas zu tun

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

Gibt es eine Möglichkeit, diesen performSelector abzubrechen und nach der Verzögerung etwas zu tun?

Satyam
quelle

Antworten:

181
[NSObject cancelPreviousPerformRequestsWithTarget:yourTarget selector:aSelector object: anArgument];
Beefon
quelle
1
Gibt es eine Option für schnell?
Morroko
2

Ich dachte, es könnte nützlich sein, wenn Leute einen tatsächlichen Code sehen, also hier zwei, die ich verwende, um Sounds zu stoppen und zu wischen, wenn ich zu einem anderen Bildschirm gehe.

- (void)handleSwipeNext {

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

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

// do some swipe handling stuff
}
JScarry
quelle
2

Swift 4.0 Version:

NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(yourFunc), object: nil)
Mc.Lover
quelle