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?

Antworten:


181
[NSObject cancelPreviousPerformRequestsWithTarget:yourTarget selector:aSelector object: anArgument];

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
}

2

Swift 4.0 Version:

NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(yourFunc), object: nil)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.