今儿个,咱来聊聊我在项目里头咋用 NSTimeInterval 的。这玩意儿,看着简单,用起来门道还真不少。
初识 NSTimeInterval
我就知道这 NSTimeInterval 是用来表示时间间隔的,就像尺子量长度一样。我记得特清楚,那时候刚开始搞 iOS 开发,看那些官方文档,一堆英文,头都大。后来才知道,这 NSTimeInterval 就是一个数字,表示多少秒。
上手实践
真正开始用 NSTimeInterval,是为做一个倒计时功能。那时候,我想做一个简单的App,能显示离某个重要日子还有多少天。我一想,这不就是算两个时间点之间差多少秒吗?
我记得我当时是这么干的:
- 先用 [NSDate date] 搞到现在的时间。
- 然后,把那个“重要日子”的时间也搞出来,也是用 NSDate。
- 然后,我发现 NSDate 有个方法叫 timeIntervalSinceDate:,可以直接算出两个时间点之间差多少秒,这结果就是 NSTimeInterval 类型的。
- 把这个秒数换算成天数,就搞定!
当时,我感觉自己老厉害,还特意写篇博客记录下来,觉得自己又掌握一个新技能。
踩过的坑
后来我用 NSTimeInterval 做个定时器功能。我想每隔几秒钟就执行一个任务。我记得当时用 NSTimer,然后把 NSTimeInterval 传进去。结果,我发现这定时器有时候不太准。
我还以为是自己代码写错,翻来覆去查好几遍。后来我去网上查资料,才知道这 NSTimer 本来就不是百分百精确的,特别是时间间隔很短的时候。我记得有篇文章说,这 NSTimer 是跟系统的 RunLoop 啥的有关,我也没太搞懂,反正就是知道它不那么靠谱。
那次之后,我就学乖,要是需要特别精确的定时,我就不用 NSTimer ,改用别的方法。不过大多数时候,NSTimer 加上 NSTimeInterval 还是挺好用的。
总结
NSTimeInterval 这玩意儿,在 iOS 开发里头还是挺常用的。我用它来计算时间差,做倒计时,做定时器,感觉都挺顺手的。虽然也踩过一些坑,但还是挺好用的。希望我今天的分享对大家有帮助!