iOS 四种延时的方法[通俗易懂]

2022-07-08 20:25:39 浏览数 (1)

大家好,又见面了,我是全栈君。

– (void)initBlock{ //延时的方法 //1:GCD延时 此方式在能够在參数中选择运行的线程。

是一种非堵塞的运行方式,没有找到取消运行的方法。 double delay1=2.0;//设置延时时间 dispatch_time_t popTime=dispatch_time(DISPATCH_TIME_NOW, delay1 * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^{ UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@”” message:@”GCD延时” delegate:self cancelButtonTitle:@”确定” otherButtonTitles:@”取消”, nil]; ; }); //2:NSTimer延时,此方式要求必须在主线程中运行。否则无效。是一种非堵塞的运行方式,能够通过NSTimer类的- (void)invalidate;取消运行。 [NSTimer scheduledTimerWithTimeInterval:8.0f target:self selector:@selector(delayMethod2) userInfo:nil repeats:NO]; //3:PerformSelector延时 [self performSelector:@selector(delayMethod) withObject:nil afterDelay:5.0f]; //4:NSThread 延时 [NSThread sleepForTimeInterval:11.0f]; [self delayMethod3]; } – (void)delayMethod{ UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@”” message:@”PerformSelector延时” delegate:self cancelButtonTitle:@”确定” otherButtonTitles:@”取消”, nil]; ; } – (void)delayMethod2{ UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@”” message:@”NSTimer延时” delegate:self cancelButtonTitle:@”确定” otherButtonTitles:@”取消”, nil]; ; } – (void)delayMethod3{ UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@”” message:@”NSThread延时” delegate:self cancelButtonTitle:@”确定” otherButtonTitles:@”取消”, nil]; ; }

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115864.html原文链接:https://javaforall.cn

0 人点赞