延遲執(zhí)行也叫做延時(shí)執(zhí)行。在iOS中有三種延時(shí)執(zhí)行方式:
1.調(diào)用NSObject的方法
[self performSelector:@selector(func) withObject:nil afterDelay:2.0];
//2S后執(zhí)行self中的func方法蔬螟。
2.使用多線程GCD
dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(2.0 * NSEC_PER_SEC),dispatch_get_main_queue(),^ {
????????? //需要延時(shí)2秒后執(zhí)行的代碼
});
3.使用定時(shí)器NSTimer
[NSTimer scheduledTimerWithInterval:2.0 target:self selector:@selector(func) userInfo:nil repeats:NO];
//2s后執(zhí)行self中的func方法。
4.使用NSThread的線程睡眠機(jī)制同樣能夠達(dá)到相同效果汽畴,但是會(huì)導(dǎo)致主線程阻塞旧巾,所以這里不做推薦。
[NSThread sleepForTimerInterval:2];
// 需要執(zhí)行的代碼寫(xiě)在后面