北京 APP 开发公司转载之倒计时设计大家有可能都了解相关倒计时的设备,比如厨房闹钟
那么如何自己设计一个倒计时程序呢,下面有齿轮为您转载一篇来之 sindrilin 的小巢整理的一个倒计时方案
(如有侵权,请及时联系我们,我们会及时下线相关内容)计算机是不存在倒计时这个概念的,所有的倒计时设计来源于对定时器的运用:给予一个 deadline,以秒为时间间隔,在每次回调时刷新屏幕上的数字
倒计时的实现几乎没有门槛,无论 NSTimer 也好,GCD 也罢,甚至使用 CADisplayLink都能用来制作一个倒计时方案
但同样的,低门槛也意味着方案的上下限差也很大,本文打算谈谈如何设计一个倒计时方案为什么要写这篇文章事实上,倒计时和我目前开发的方向八竿子打不着,我也确实没有必要和想过写这么一套方案
只是这几天有朋友分享了别人设计的倒计时功能:采用一个全局十时管理对象针对每一个倒计时按钮分配计时器,计时器会生成一个 NSOperation 对象来执行回调,完成倒计时功能在抛开代码不谈的情况下,这套设计思路我也是存疑的
如果倒计时要使用operation,那就需要使用 queue 来完成任务
根据 queue 的串行并行属性,要考虑这两点:•如果 queue 是并行的,一个界面上存在多个倒计时按钮时,可能会新建线程来处理同一个 queue 的任务,这部分的开销并不是必需的•operation 需要投放到 queue 里面启动执行
假如每秒的回调包装成operation 处理,那么需要一个定时机制来投放这些 operation
如果是这么,为什么不直接使用定时器,而要用 operation 但在看完设计者的文章和代码之后,我发现对方根本没有考虑过上面的问题
他 operation 的任务思路很奇怪:在每一个 operation 里面,采用 while+sleep 的方式,每次回调后