iOS中的3种定时器
var timer: DispatchSourceTimer?
func startCountdown() {
//一般倒计时是操作UI,使用主队列
timer = DispatchSource.makeTimerSource(queue: DispatchQueue.main)
// //耗时操作放在全局队列,子线程处理
// timer = DispatchSource.makeTimerSource(queue: DispatchQueue.global())
timer.schedule(deadline: .now(), repeating: .seconds(1))
timer.setEventHandler {
// 定时器执行的操作
}
timer.resume()
} deinit {
timer.cancel()
timer = nil
}
var displayLink: CADisplayLink?
func startCountdown() {
//一般倒计时是操作UI,使用主队列
let displayLink = CADisplayLink(target: self, selector: #selector(update))
//设置多长时间回调一次,默认每次刷新都会调用,大概60ps, 这里设置1表示1s调用一次
displayLink.preferredFramesPerSecond = 1
displayLink.add(to: .main, forMode: .common)
} @objc func update() {
// 定时器执行的操作
} deinit {
displayLink.invalidate()
displayLink = nil
}
var timer: Timer?
func startCountdown() {
//一般倒计时是操作UI,使用主队列
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in
// 定时器执行的操作
}
} deinit {
timer.invalidate()
timer = nil
}
iOS中的3种定时器的更多相关文章
- iOS中的三种定时器
iOS中的三种定时器 NSTimer 一.背景 定时器是iOS开发中经常使用的,但是使用不慎会造成内存泄露,因为NSTimer没有释放,控制器析构函数dealloc也没有调用,造成内存泄露. 二.使用 ...
- iOS中的几种定时器详解
在软件开发过程中,我们常常需要在某个时间后执行某个方法,或者是按照某个周期一直执行某个方法.在这个时候,我们就需要用到定时器. 然而,在iOS中有很多方法完成以上的任务,经过查阅资料,大概有三种方法: ...
- IOS开发数据存储篇—IOS中的几种数据存储方式
IOS开发数据存储篇—IOS中的几种数据存储方式 发表于2016/4/5 21:02:09 421人阅读 分类: 数据存储 在项目开发当中,我们经常会对一些数据进行本地缓存处理.离线缓存的数据一般都 ...
- ios中的几种多线程实现
iOS 支持多个层次的多线程编程,层次越高的抽象程度越高,使用起来也越方便,也是苹果最推荐使用的方法.下面根据抽象层次从低到高依次列出iOS所支持的多线程编程范式:1, Thread;2, Cocoa ...
- iOS:iOS中的几种动画
本文来自收藏,感谢原创博主. iOS中的动画 摘要 本文主要介绍核iOS中的动画:核心动画Core Animation, UIView动画, Block动画, UIImageView的帧动画. 核心动 ...
- iOS中的几种锁的总结,三种开启多线程的方式(GCD、NSOperation、NSThread)
学习内容 欢迎关注我的iOS学习总结--每天学一点iOS:https://github.com/practiceqian/one-day-one-iOS-summary OC中的几种锁 为什么要引入锁 ...
- Qt分析:Qt中的两种定时器(可是QObject为什么要提高定时器呢,没必要啊。。。)
Qt有两种定时器,一种是QObject类的定时器,另一种是QTimer类的定时器. (1)QObject类的定时器 QObject类提供了一个基本的定时器,通过函数startTimer()来启 ...
- iOS中的两种主要架构及其优缺点浅析
凡是程序的开发者,应该对程序的架构都不陌生.一个程序的架构的好坏对这个程序有着非常重要的作用.今天我们来看一下iOS开发中用要的两种主流的程序架构.这个过程中我们主要以例子的形式展开. 我们来看第一种 ...
- iOS中的两种搜索方式UISearchDisplayController和UISearchController
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 以前iOS的搜索一般都使用UISearchDisplayCon ...
- ios中的三种弹框《转》
目前为止,已经知道3种IOS弹框: 1.系统弹框-底部弹框 UIActionSheet (1)用法:处理用户非常危险的操作,比如注销系统等 (2)举例: UIActionSheet *sheet = ...
随机推荐
- python tkinter Checkbutton的新增和清除 取值
from tkinter import * root = Tk() name = StringVar() check_box_list = [] ent=Entry(root,textvariable ...
- alt_flash_open_dev读写EPCS出现“Cannot open flash device”的解决办法
转载 http://www.corecourse.cn/forum.php?mod=viewthread&tid=28317 在对EPCS读写操作时alt_flash_open_dev(EPC ...
- Spring--案例:测试业务层接口万次执行效率
案例来袭 这样,并不能够分辨出哪个的效率是哪个 可以利用pjp进行这样的操作: 结果:
- openfoam并行通信探索(一)
前言 最近在忙,快一两周没更新了,今天说下如何实现openfoam内的并行通信 为什么要并行通信 说到并行通信大家不要害怕啊,只是不同核之间数据传递,比如说咱们仿真开16个核,3号计算单元对4号计算单 ...
- 这样封装echarts简单好用
为什么要去封装echarts? 在我们的项目中,有很多的地方都使用了echarts图表展示数据. 在有些场景,一个页面有十多个的echarts图. 这些echarts只是展示的指标不一样. 如果我们每 ...
- Salesforce Javascript(四) 展开语法 ...
本篇参考: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Spread_syntax Sale ...
- 使用dataX收获的教训
首先是安装dataX,安装非常简单,只需下载对应的压缩包即可. 下载地址:https://github.com/alibaba/DataX 首先我出现的第一个错误:命令提示符界面出现出现乱码. 解决方 ...
- 有了HTTP,为啥还要用RPC
既然有 HTTP 请求,为什么还要用 RPC 调用? 一直以来都没有深究过RPC和HTTP的区别,不都是写一个服务然后在客户端调用么? HTTP和RPC最本质的区别,就是 RPC 主要是基于 TCP/ ...
- vue之input输入框的几个事件
目录 事件简介 示例 事件简介 click 点击事件,一般不会用于input输入框,会用于按钮,用于输入框就有点像focus了,当点击输入框时会触发 blur 失去焦点事件,当失去焦点时会触发. fo ...
- 从k8s 的声明式API 到 GPT的 提示语
命令式 命令式有时也称为指令式,命令式的场景下,计算机只会机械的完成指定的命令操作,执行的结果就取决于执行的命令是否正确.GPT 之前的人工智能就是这种典型的命令式,通过不断的炼丹,告诉计算机要怎么做 ...