我在 Xcode4 中工作,在一个项目中,我一直在使用三个不同的 NSTimers 用于组织目的,但我意识到定时器是相同的,除了名称,所以很容易将所有三个定时器合并为一个。哪个对我的项目编码更好,三个独立的计时器划分代码,还是只有一个包含所有代码的计时器?
谢谢!
如果多个计时器彼此不同步触发,则可能会对能量产生重大影响。现代 CPU 尝试尽可能多地休眠,并且允许它们定期休眠一次甚至几毫秒可以显着提高电池寿命。如果您的定时器关闭得很近,但不是在同一时间,那么系统睡眠的机会就会减少。我推荐WWDC 2013的Session 704(构建高效的 OS X 应用程序)和 Session 712(能源最佳实践),它们详细讨论了这一点以及如何改进代码。Apple 最近花费了大量精力来改进计时器的管理方式,并鼓励开发人员更好地将他们的计时器批处理在一起。
这不是为您的代码增加显着复杂性的理由,@HotLicks 和@GerdK 是正确的,代码简单性通常胜过其他问题,但成本不应被忽视,尤其是在现代 CPU 和高频计时器上。
请注意,有一些新的 NSTimer 选项可以帮助您获得批处理计时器的好处,而无需在最新的操作系统中实际重构您的代码。有关更多信息,请参见上面的视频(仍在 NDA 下,因此我无法在此处详细介绍)。
无论哪种方法都可以使您的代码更易于理解。