2017-04-05 7 views
0

haben eine Methode zum Aktualisieren geschrieben, die sich immer wieder selbst aufruft, wenn wir diese Aktivität starten, wie unten erwähnt. Ich möchte diese Methodenfunktion stoppen, sobald wir eine Ausgabe erhalten haben (jetzt läuft sie weiter, selbst wenn wir ausgegeben werden). Bitte lassen Sie mich wissen, wenn es eine Möglichkeit gibt, es zu tun.Automatisches Auffrischen einer Methode kontinuierlich

-(void)reloadMethod{ 
[self downloadProgressAudio]; 
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC); 
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
    [self reloadMethod]; 
}); 
} 

Antwort

0

Wenn Sie den Aufruf dieser Methode halten müssen, bis Sie eine Ausgabe zu erhalten , müssen Sie diesen Test einschließen und die Funktion nur dann erneut aufrufen, wenn Sie keine Ausgabe haben.

if !outputDataExists { 
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
     [self reloadMethod]; 
    }); 
} 
+0

Danke, es funktioniert mit Ihrem Konzept. –

-1

können Sie verwenden Timer hier

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 
     target:self 
     selector:@selector(reloadMethod) 
     userInfo:nil 
     repeats:YES]; 

Wenn Sie mit Ihrer wiederholten Ausführung getan werden dann tun, um diese

[timer invalidate]; 
timer = nil; 
+0

der ganze Sinn der Frage war, wie, dass die Ausführung zu erkennen, sollte aufhören - und Sie haben diesen Punkt nicht angesprochen – Russell

+0

Sie [Timer invalidate] verwenden; Timer = Null; , um die Ausführung zu stoppen, d. H. Es liegt in Ihrer Hand, wann Sie es stoppen können. So wissen Sie, wann es aufhören wird –

+0

Danke für Ihre Kommentare, ich habe es funktioniert jetzt! –

Verwandte Themen