定時(shí)任務(wù)就是一定時(shí)間內(nèi)或一定時(shí)間之后做某事侣颂,一共三個(gè)方法癌蓖。
現(xiàn)在要執(zhí)行的操作是怯晕,2秒之后執(zhí)行begin這個(gè)方法哟旗。
第一種方法:
[self performSelector:@selector(begin) withObject:nil afterDelay:2];
第二種方法:用多線程GCD實(shí)現(xiàn)
dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(2 * NSEC_PER_SEC)),dispatch_get_main_queue(),^{
self.hud.alpha=0.0
});
第三種方法:用NSTimer
[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(begin)userInfo:nil repeats:NO];
// repeats如果為YES,每隔2秒就會(huì)調(diào)用一次begin方法
這里再補(bǔ)充一個(gè)繪圖時(shí)使用的定時(shí)方法
在繪圖的時(shí)候需要用到定時(shí)器荣病,通常使用CADisplayLink(每次屏幕刷新的時(shí)候就會(huì)調(diào)用码撰,屏幕一般一秒刷新60次),NSTimer很少用于繪圖个盆,因?yàn)檎{(diào)度優(yōu)先級(jí)比較低脖岛,并不會(huì)準(zhǔn)時(shí)調(diào)用朵栖,會(huì)有卡頓的情況出現(xiàn)
CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(begin)];
// 添加主運(yùn)行循環(huán)
[link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];