美文网首页
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