使用定时器保持界面响应性的详细指南
1. 定时器概述
在开发中,定时器是一种非常实用的工具,可用于按特定时间间隔调用特定对象上的方法。在相关框架里,有一个名为 NSTimer 的类可以实现这一功能。
定时器的工作流程如下:
1. 创建定时器。
2. 将其安排到运行循环中。一旦定时器被安排好,它会在指定的时间间隔后触发。如果设置为重复,它会在每次指定间隔过去后不断调用目标方法。
不过,需要注意的是,非重复定时器现在不太常用,因为通过调用 performSelector:withObject:afterDelay: 方法能更轻松地达到相同效果。
定时器并不保证能精确在指定的时间间隔触发。由于运行循环的工作方式,无法保证定时器触发的精确时刻。定时器会在指定时间过去后的第一次运行循环时触发,这意味着它不会在指定间隔之前触发,但可能会在之后触发。通常,实际间隔只比指定的长几毫秒,但不能依赖于此。如果主循环上有长时间运行的方法,运行循环要等该方法完成后才会触发已安排的定时器,这可能会比请求的间隔晚很久。
定时器在其运行循环所在的线程上触发。在大多数情况下,除非有特殊需求,定时器会在主线程上创建,其触发的方法也会在主线程上执行。这就要求遵循与操作方法相同的规则,如果在定时器调用的方法中做太多工作,会导致用户界面卡顿。因此,若想使用定时器让用户界面保持响应,需要将工作分解成小的部分,每次触发时只做少量工作。
2. 创建定时器
创建 NSTimer 实例很简单。如果想创建但不立即将其安排到运行循环中,可以使
超级会员免费看
订阅专栏 解锁全文
847

被折叠的 条评论
为什么被折叠?



