37、使用定时器保持界面响应性的详细指南

使用定时器保持界面响应性的详细指南

1. 定时器概述

在开发中,定时器是一种非常实用的工具,可用于按特定时间间隔调用特定对象上的方法。在相关框架里,有一个名为 NSTimer 的类可以实现这一功能。

定时器的工作流程如下:
1. 创建定时器。
2. 将其安排到运行循环中。一旦定时器被安排好,它会在指定的时间间隔后触发。如果设置为重复,它会在每次指定间隔过去后不断调用目标方法。

不过,需要注意的是,非重复定时器现在不太常用,因为通过调用 performSelector:withObject:afterDelay: 方法能更轻松地达到相同效果。

定时器并不保证能精确在指定的时间间隔触发。由于运行循环的工作方式,无法保证定时器触发的精确时刻。定时器会在指定时间过去后的第一次运行循环时触发,这意味着它不会在指定间隔之前触发,但可能会在之后触发。通常,实际间隔只比指定的长几毫秒,但不能依赖于此。如果主循环上有长时间运行的方法,运行循环要等该方法完成后才会触发已安排的定时器,这可能会比请求的间隔晚很久。

定时器在其运行循环所在的线程上触发。在大多数情况下,除非有特殊需求,定时器会在主线程上创建,其触发的方法也会在主线程上执行。这就要求遵循与操作方法相同的规则,如果在定时器调用的方法中做太多工作,会导致用户界面卡顿。因此,若想使用定时器让用户界面保持响应,需要将工作分解成小的部分,每次触发时只做少量工作。

2. 创建定时器

创建 NSTimer 实例很简单。如果想创建但不立即将其安排到运行循环中,可以使

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值