本文主要比较分析了iOS延迟执行的四种方式,比较了iOS延迟执行的特点,具有一定的参考价值。感兴趣的朋友可以参考一下。
最近我学会了几种延迟执行的方法,分享一下:
1.performSelector(NSObject)方法2。NSTimer方法3。GCD方法4 .睡眠(NSThread)方法
一、performSelector方法:
复制代码如下:【self perform selector:@ selector(delay method)with object:nil after delay:1.0f】;
1.特点:该方法要求必须在主线程中执行,否则无效。它是一种非阻塞的执行方式,暂时没有找到取消执行的方法。
二、定时器:NSTimer:
复制代码如下:【NSTimer ScheduledtimerwithTimeInterval:1.0F Target:self Selector:@ Selector(delay method)UserInfo:nil repeats:no】;
1.特点:该方法要求必须在主线程中执行,否则无效。是一种非阻塞执行模式,可以通过NSTimer类的-(void)invalidate来执行;取消执行
三、sleep方式:
副本代码如下:[NSThread SleepFortimeInterval:1.0f];
1.特点:该方法在主线程和子线程中都可以执行。它是一种阻塞执行模式。建议放在一个子线程里,以免卡在接口里找不到办法取消执行。
四、GCD方式:
复制代码如下:dispatch _ after(dispatch _ time(dispatch _ time _ now,(int64 _ t) (3.0 * nsec _ per _ sec)),dispatch _ get _ main _ queue(),{ dispatch _ async(dispatch _ get _ queue)});});
1.特点:该方法可以在参数中选择执行线程。它是一种非阻塞执行模式,没有办法取消执行。
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。