[Swift实际操作]七、常见概念-(9)使用定时组件Timer执行定时任务
本文将为你演示计时器的使用,使用计时器可以每隔一定时间执行某个函数。
在左侧的项目导航区,打开视图控制器的代码文件: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,可以容易通过审核。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)