Methode nicht aufgerufen, mit dispatch_async und wiederholen NSTimer
Bin ich, eine app zu entwickeln, wo ich anrufen möchte-Methode in separaten Warteschlange mit dispatch_async
. Möchte ich nennen, dass die Methode wiederholt nach einer bestimmten Zeitspanne. Aber die Methode ist nicht immer genannt.
Weiß ich nicht was ist falsch. Hier ist mein code:
dispatch_async( NotificationQueue, ^{
NSLog(@"inside queue");
timer = [NSTimer scheduledTimerWithTimeInterval: 20.0
target: self
selector: @selector(gettingNotification)
userInfo: nil
repeats: YES];
dispatch_async( dispatch_get_main_queue(), ^{
//Add code here to update the UI/send notifications based on the
//results of the background processing
});
});
-(void)gettingNotification {
NSLog(@"calling method ");
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, eine sich wiederholende timer aufgerufen werden, die auf eine
dispatch_queue_t
verwendendispatch_source_create
mit einemDISPATCH_SOURCE_TYPE_TIMER
:Erstellt einen timer, der läuft einmal alle 20 Sekunden (3. parameter
dispatch_source_set_timer
), mit einem Spielraum von einer Sekunde (4. parameter aufdispatch_source_set_timer
).Abbrechen timer verwenden
dispatch_source_cancel
:timer
variable tatsächlich hat eine Klasse Eigenschaft (oder ivar). Im Gegensatz zuNSTiner
, wenn es fällt aus dem Rahmen, Versand, timer abgebrochen und freigegeben werden.Versuchen, diesen code
suchen Sie weitere
Wie löst du einen block nach einer Verzögerung, wie -performSelector:withObject:afterDelay:?