[Swift实际操作]七、常见概念,9使用定时组件Timer执行定时任务

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

本文将为你演示计时器的使用,使用计时器可以每隔一定时间执行某个函数。

在左侧的项目导航区,打开视图控制器的代码文件:ViewController.swift

现在开始编写代码,实现任务定时的功能。

定义一个定时器对象,并设置执行的时间间隔为1秒,定时执行的任务代码位于尾部的闭包之中。

1 let tmr = Timer(timeInterval: 1.0, repeats: fasle)
2 {
3      (timer) in print("Timer in a block.")
4       //调用定时器的执行方法,开始执行定时任务。
5       tmr.fire()
6 }

接着继续编写代码,将定时任务设置为循环执行。

定义一个定时器对象,并设置执行的时间间隔为1秒,定时执行的任务代码位于尾部的闭包之中。

将是否循环的参数设置为真:repeats: true

1 Timer.scheduledTimer(withTimeInterval: 1.0,repeats: true){
2 {
3    (timer) in print("scheduledTimer in a block.")
4 }

接着继续编写代码,由当前的视图控制器,实现定时任务中的业务功能。

创建一个定时任务,每隔1秒钟,执行一次当前视图控制器的实例方法,并使用UserInfo设置传递的参数。

 1 //添加一个数量属性,并设置默认值为0,作为已经想用过的苹果数量
 2 var appleCount = 0
 3 Timer.scheduledTimer(timeInterval: 1,
 4                      target: self,
 5                      selector:#selector(ViewController.timerAction(_:)),
 6                      userInfo:"an apple",
 7                      repeat: true)
 8 //添加一个方法,用来响应定时器的调用
 9 @objc func timerActio(_ timer: Timer)
10 { 
11    //判断当苹果数量等于3时停止定时器
12    if self.appleCount == 3
13    {
14       timer.invalidate()
15       //获得传递的参数,并在控制台输出定时日志
16       let parameter = timer.userInfo
17       print("I'm eating \(parameter!).")
18       //将吃过的苹果数量加1
19       self.appleCount += 1
20     }
21 }

技巧:我们可以通过NSExceptionDomains来针对特定的域名开放HTTP,可以容易通过审核。