ejecutar el método después de la demora no usar NSThread o sleep () – ¿hay otra opción?

¿Hay alguna forma en iOS4 de llamar a un método después de un retraso usando otra cosa que no sea NSThread o bloqueando la UI usando sleep ()?

Solutions Collecting From Web of "ejecutar el método después de la demora no usar NSThread o sleep () – ¿hay otra opción?"

double delayInSeconds = 2.0; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ // code to be executed on main thread.If you want to run in another thread, create other queue }); 
 - (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay 

De NSObject hará esto por ti.

Además, puede crear un NSTimer y hacer que realice una callback a algún objective y selector después de un cierto período de time.

Puedes usar NSTimer . (por ejemplo, timerWithTimeInterval:target:selector:userInfo:repeats )

 [self performSelector:@selector(methodName) withObject:nil afterDelay:2.0]; 
 [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(aMethod:) userInfo:nil repeats:NO]; - (void) aMethod:(NSTimer *) aTimer { //task to do after the delay. } 

Puedes hacerlo fácilmente con:

 [self performSelector:@selector(methodName) withObject:nil afterDelay:5];