美文网首页
怎么让NSTimer精准

怎么让NSTimer精准

作者: focusHYD | 来源:发表于2019-04-26 15:44 被阅读0次

在面试中经常会被问到Timer 一定是准确的么?如何让Timer达到精准?

有如下2个方法:

方法1.在主线程中进行NSTimer操作,但是将NSTimer实例加到main runloop的特定mode(模式)中。避免被复杂运算操作或者UI界面刷新所干扰。

NSTimer *timer = [NSTimer timerWithTimeInterval:2.0  target:self selector:@selector(test) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

方法2.在子线程中进行NSTimer的操作,再在主线程中修改UI界面显示操作结果;

- (void)timer2 {
    NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(newThread) object:nil];
    [thread start];
}
- (void)newThread {
    @autoreleasepool {
    [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(showTime) userInfo:nil repeats:YES];
    [[NSRunLoop currentRunLoop] run];
      }
}

相关文章

  • 怎么让NSTimer精准

    在面试中经常会被问到Timer 一定是准确的么?如何让Timer达到精准? 有如下2个方法: 方法1.在主线程中进...

  • iOS---NStimer的计时问题

    NStimer不是一个精准的,理由: 1、NSTimer加在main runloop中,模式是NSDefaultR...

  • RunLoop

    我们知道NSTimer是不精准的,如果NSTimer当前所处的线程正在进行大数据处理(假设为一个大循环),NSTi...

  • 第六章、Block相关

    一、你都遇到过哪些循环引用?你又是怎么解决的? 1、NSTimer创建使用NSTimer的时候,NSTimer会默...

  • ios 使用GCD定时器

    定时器我们首先想到是NSTimer,不过NSTimer 有的时候会不准确,那么怎么处理呢?因为NSTimer 是在...

  • 轮播图

    @property (nonatomic, retain)NSTimer* rotateTimer; //让视图自...

  • NSTimer需要注意的地方

    NSTimer的生命周期问题 那么问题来了:如果我就是想让这个 NSTimer 一直输出,直到 DemoViewC...

  • NSTimer,CADisplayLink内存泄漏

    今天在Q群 问了些面试题,有一个 NSTimer 怎么处理内存泄漏的问题, 就是NSTimer的target被强引...

  • iOS中的计时器

    一、NSTimer 创建方法 1 NSTimer *timer = [NSTimer scheduledTimer...

  • NSTimer

    创建NSTimer 创建NSTimer的常用方法是: + (NSTimer *)scheduledTimerWit...

网友评论

      本文标题:怎么让NSTimer精准

      本文链接:https://www.haomeiwen.com/subject/osfqnqtx.html