Talk is cheap.
-(void)GCDTimer
{
//首先timer變量實(shí)為類內(nèi)的成員變量或者成員屬性
timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_main_queue());
dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 2.0f * NSEC_PER_SEC, 0.1 * NSEC_PER_SEC);
dispatch_source_set_event_handler(timer, ^{
NSLog(@"----");
});
dispatch_resume(timer);
}
-(void)CADisplayLinkMethod
{
CADisplayLink *displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(timeMethod)];
//NSInteger類型的值处渣,用來設(shè)置間隔多少幀調(diào)用一次selector方法榆俺,默認(rèn)值是1熬尺,即每幀都調(diào)用一次眯搭。(1秒=60幀)
[displayLink setPreferredFramesPerSecond:120];
[displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
}
-(void)timeMethod
{
NSLog(@"---");
}
-(void)NSTimerMethod
{
//創(chuàng)建定時(shí)器
NSTimer *timer1 = [NSTimer timerWithTimeInterval:2.0 repeats:NO block:^(NSTimer * _Nonnull timer) {
NSLog(@"---");
}];
//將定時(shí)器加入主運(yùn)行循環(huán)
[[NSRunLoop mainRunLoop]addTimer:timer1 forMode:NSDefaultRunLoopMode];
//取消定時(shí)器
//調(diào)用創(chuàng)建方法后喝噪,target對(duì)象的計(jì)數(shù)器會(huì)加1充尉,直到執(zhí)行完畢鸭叙,自動(dòng)減1闯第。如果是循環(huán)執(zhí)行的話质礼,就必須手動(dòng)關(guān)閉旺聚,否則可以不執(zhí)行釋放方法。在定時(shí)器功能結(jié)束以后或者控制器釋放需手動(dòng)釋放定時(shí)器,不然容易引起內(nèi)存泄漏.
// [timer1 invalidate];
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者