当前位置: 首页 > news >正文

iOS-OC实现定时器

一、NSTimer

1. 创建方法

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(action:) userInfo:nil repeats:NO];

TimerInterval : 执行之前等待的时间。比如设置成1.0,就代表1秒后执行方法

target : 需要执行方法的对象。

selector : 需要执行的方法

repeats : 是否需要循环

2. 释放方法

[timer invalidate];

timer = nil;

注意 : 调用创建方法后,target对象的计数器会加1,直到执行完毕,自动减1。如果是循环执行的话,就必须手动关闭,否则可以不执行释放方法。

3. 特点

存在延迟:不管是一次性的还是周期性的timer的实际触发事件的时间,都会与所加入的RunLoop和RunLoop Mode有关,如果此RunLoop正在执行一个连续性的运算,timer就会被延时出发。重复性的timer遇到这种情况,如果延迟超过了一个周期,则会在延时结束后立刻执行,并按照之前指定的周期继续执行。

必须加入Runloop:使用上面的创建方式,会自动把timer加入MainRunloop的NSDefaultRunLoopMode中。如果使用以下方式创建定时器,就必须手动加入Runloop:

NSTimer *timer = [NSTimer timerWithTimeInterval:5 target:self selector:@selector(timerAction) userInfo:nil repeats:YES];

[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];

相关文章:

  • 做网站你们用什么浏览器/关键词文案生成器
  • 微网站价格/西安seo搜推宝
  • 株洲网站建设公司/搜索热门关键词
  • 牛商网网站做seo好么/电子商务沙盘seo关键词
  • wordpress主题ttfb响应时间/全国新闻媒体发稿平台
  • 西安英文旅游网站建设/注册网址在哪里注册
  • diff算法-h函数-虚拟dom
  • 【运维心得】正确的校正mysql-slave及mysqldump
  • Python 协程学习有点难度?这篇文字值得你去收藏
  • 锂离子电池热失控预警资料整理(三)
  • make_blobs函数
  • 51单片机——点亮LED
  • Quartz认知篇 - 初识分布式任务调度Quartz
  • 论文解读 - 城市自动驾驶车辆运动规划与控制技术综述 (第2部分)
  • Puppeteer之Pyppeteer——定位页面元素的正确方法(3)
  • 简述团队模式和团队的开发模式
  • 动态内存分配/管理
  • subprocess模块