ça devrait marcher,
Il répète une méthode toutes les 1 seconde dans une file d'attente en arrière-plan sans utiliser NSTimers :)
- (void)methodToRepeatEveryOneSecond
{
// Do your thing here
// Call this method again using GCD
dispatch_queue_t q_background = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);
double delayInSeconds = 1.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, q_background, ^(void){
[self methodToRepeatEveryOneSecond];
});
}
Si vous êtes dans la file d'attente principale et que vous souhaitez appeler la méthode ci-dessus, vous pouvez le faire pour qu'elle se transforme en file d'attente d'arrière-plan avant d'être exécutée :)
dispatch_queue_t q_background = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);
dispatch_async(q_background, ^{
[self methodToRepeatEveryOneSecond];
});
J'espère que ça aide