Mi chiedevo se esiste una soluzione per generare un evento una volta dopo 30 secondi o ogni 30 secondi in CocoaTouch ObjectiveC.Objective C equivalente a javascripts setTimeout?
24
A
risposta
31
Ci sono un certo numero di opzioni.
Il più veloce da utilizzare è in NSObject
:
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay
(Ci sono pochi altri con lievi variazioni.)
Se si desidera un maggiore controllo o per essere in grado di dire inviare questo messaggio ogni trenta secondi è probabilmente necessario NSTimer
.
3
+[NSTimer scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:]
Si consiglia inoltre di guardare le altre NSTimer
metodi
11
Date un'occhiata alla classe NSTimer
:
NSTimer *timer;
...
timer = [[NSTimer scheduledTimerWithTimeInterval:30.0 target:self selector:@selector(thisMethodGetsFiredOnceEveryThirtySeconds:) userInfo:nil repeats:YES] retain];
[timer fire];
Da qualche altra parte si ha il metodo effettivo che gestisce l'evento:
- (void) thisMethodGetsFiredOnceEveryThirtySeconds:(id)sender {
NSLog(@"fired!");
}
42
the performSelector: la famiglia ha i suoi limiti. Ecco l'setTimeout equivalente più:
dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * 0.5);
dispatch_after(delay, dispatch_get_main_queue(), ^(void){
// do work in the UI thread here
});
EDIT: Un paio di progetti che forniscono zucchero sintattico e la capacità di annullare l'esecuzione (clearTimeout):
Problemi correlati
- 1. Objective-C HashMap equivalente
- 2. esiste un equivalente PHP per javascripts a = b && b.c || d
- 3. Rubino || = equivalente in Objective-C
- 4. Equivalente MonoTouch.Dialog per Objective C?
- 5. Vue equivalente di setTimeOut?
- 6. Equivalente Sscanf in Objective-C
- 7. Equivalente Objective-C di "override" in C#
- 8. Objective-C/Cacao equivalente di C# ManualResetEvent
- 9. Esiste un Objective-C equivalente a fatalError di Swift?
- 10. Equivalente costruttore statico in Objective-C?
- 11. È C -> equivalente alla notazione dot in Objective-C
- 12. equivalente su Objective C/Swift di Java ThreadLocal variabili
- 13. Esiste una regex Objective sostituita con callback/C# equivalente MatchEvaluator?
- 14. Equivalente Java di delegati Cocoa/Protocolli informali Objective-C?
- 15. Da PHP a Objective-C
- 16. Objective C UIColor a NSString
- 17. Sum a Array - Objective-C
- 18. Objective-C Float A completare
- 19. Equivalente di Ruby method_missing in Objective C/iOS
- 20. Calling due funzioni javascripts onclick
- 21. C# equivalente a "Not MyEnum.SomeValue"
- 22. C++ 11 Equivalente a Boost.Format
- 23. C++ Equivalente a Java's BlockingQueue
- 24. java equivalente a C# ExpandoObject
- 25. res.sendfile() non serve bene javascripts
- 26. Objective-C dynamic_cast?
- 27. Equivalente C equivalente a "Variabili variabili" di PHP
- 28. Conversione da & a & in Objective-C
- 29. Convert NSArray a NSString in Objective-C
- 30. Objective C Convert int a NSString (iPhone)
Sapete se questo fa leva su "dispatch_after' in qualsiasi momento? – Jacksonkr
Probabilmente la mia ipotesi non è (GCD è di livello C e non "conosce" i selettori, anche questa API è precedente a GCD) ma è possibile che lo usi sotto il cofano. –