iOS定时器

Talk is cheap.

-(void)GCDTimer
{
    //首先timer变量实为类内的成员变量或者成员属性
    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类型的值,用来设置间隔多少帧调用一次selector方法,默认值是1,即每帧都调用一次。(1秒=60帧)

    [displayLink setPreferredFramesPerSecond:120];
    [displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
}
-(void)timeMethod
{
    NSLog(@"---");
}
-(void)NSTimerMethod
{
    //创建定时器
    NSTimer *timer1 = [NSTimer timerWithTimeInterval:2.0 repeats:NO block:^(NSTimer * _Nonnull timer) {
        NSLog(@"---");
    }];
    //将定时器加入主运行循环
    [[NSRunLoop mainRunLoop]addTimer:timer1 forMode:NSDefaultRunLoopMode];
    //取消定时器
    //调用创建方法后,target对象的计数器会加1,直到执行完毕,自动减1。如果是循环执行的话,就必须手动关闭,否则可以不执行释放方法。在定时器功能结束以后或者控制器释放需手动释放定时器,不然容易引起内存泄漏.
   // [timer1 invalidate];
}

你可能感兴趣的:(iOS定时器)