similares samsung sainte pro precio los lorande inalambricos iconx i7s gear bragi auriculares audifonos airpods iphone objective-c cocoa-touch timer

iphone - samsung - ¿Objetivo C equivalente a javascripts setTimeout?



gear iconx 2018 vs airpods (4)

Echa un vistazo a la clase NSTimer :

NSTimer *timer; ... timer = [[NSTimer scheduledTimerWithTimeInterval:30.0 target:self selector:@selector(thisMethodGetsFiredOnceEveryThirtySeconds:) userInfo:nil repeats:YES] retain]; [timer fire];

En otro lugar tienes el método real que maneja el evento:

- (void) thisMethodGetsFiredOnceEveryThirtySeconds:(id)sender { NSLog(@"fired!"); }

Me preguntaba si hay una solución para generar un evento una vez después de 30 segundos o cada 30 segundos en CocoaTouch ObjectiveC.


Hay muchas opciones.

El más rápido de usar está en NSObject :

- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay

(Hay algunos otros con ligeras variaciones.)

Si desea más control o para poder decir que enviar este mensaje cada treinta segundos probablemente necesite NSTimer .


La familia performSelector: tiene sus limitaciones. Aquí está el equivalente más cercano a setTimeout:

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 });

EDITAR: Un par de proyectos que proporcionan azúcar sintáctica y la capacidad de cancelar la ejecución (clearTimeout):


+[NSTimer scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:]

Documentation

También es posible que desee ver los otros métodos de NSTimer