开启关闭⏲️

NSTimer 的初始化方法 < 一 >

scheduledTimerWithTimeInterval:target:selector:userInfo:repeats: 方法

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats

seconds :需要调用的毫秒数
target :调用方法需要发送的对象。即:发给谁
userInfo :发送的参数
repeats :指定定时器是否重复调用目标方法

现在做个比喻:
可以把调度一个计时器与启动汽车的引擎相比较。调度的计时器就是运行中的引擎。没有被调度的计时器就是一个已经准备好启动但是还没有运行的引擎。我们在程序里面 , 无论何时 , 都可以调度和取消调度计时器 , 就像根据我们所处的环境 , 决定汽车的引擎是启动还是停止。如果你想要在程序中 , 手动的在某一个确定时间点调度计时器 , 可以使用 NSTimer 的类方法 timerWithTimeInterval:target:selector:userInfo:repeats: 方法。

NSTimer 的初始化方法 < 二 >

如果,我们想在任何时候都能够随心所欲的 启动 / 停止定时器。
scheduledTimerWithTimeInterval 方法本质上就是创建一个时钟,
添加到运行循环的模式是DefaultRunLoopMode

还有 NSTimer 的另一种初始化方法,能够满足我们的要求:

// 使用 timerWithTimeInterval 方法来实例化一个 NSTimer, 这时候 NSTimer 是不会启动的
self.paintingTimer = [NSTimer timerWithTimeInterval:1.0
                                                 target:self
                                               selector:@selector(paint:)
                                               userInfo:nil
                                                repeats:YES];
 
 
// 当需要调用时 , 可以把计时器添加到事件处理循环中
 [[NSRunLoop currentRunLoop] addTimer:self.paintingTimer forMode:NSDefaultRunLoopMode];
//停止时钟

[self.timer invalidate];

 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • SSH(Secure Shell)是一种通用的、功能强大的、基于软件的网络安全解决方案。计算机每次向网络发送数据时...
    AFlyLi阅读 3,956评论 0 0
  • 由于项目的正式网络环境的 host 是走域名,能支持 https ,测试网络环境的 host 是走 IP ,无法支...
    York_魚阅读 1,030评论 0 1
  • centos 端口开启关闭 查看80端口占用情况lsof -i tcp:80 查看8081端口运行状况netsta...
    逐暗者阅读 3,098评论 0 1
  • 打开终端,输入: 显示隐藏文件$ defaults write com.apple.finder AppleSho...
    XLsn0w阅读 3,285评论 0 3