美文网首页
iOS NSTimer

iOS NSTimer

作者: 山杨 | 来源:发表于2021-09-23 11:57 被阅读0次

    1.时间不准的原因

    NSTimer是基于RunLoop实现的, 当RunLoop中有大量任务的情况下NSTimer就会不准
    解决办法:
    使用GCD的定时器dispatch_source_t(基于系统内核)

    dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatchQueue);
    dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, intervalInSeconds * NSEC_PER_SEC, leewayInSeconds * NSEC_PER_SEC);
    dispatch_source_set_event_handler(timer, ^{
      #code to be executed when timer fires
    });
    dispatch_resume(timer);
    

    相关文章

      网友评论

          本文标题:iOS NSTimer

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