Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 使用多个NSTimer还是将所有代码放在一个NSTimer中更好?_Cocoa_Nstimer - Fatal编程技术网

Cocoa 使用多个NSTimer还是将所有代码放在一个NSTimer中更好?

Cocoa 使用多个NSTimer还是将所有代码放在一个NSTimer中更好?,cocoa,nstimer,Cocoa,Nstimer,我在Xcode4中工作,在一个项目中,为了组织的目的,我使用了三个不同的NSTimer,但我意识到,除了名称之外,计时器是相同的,因此很容易将所有三个计时器合并为一个。对于我的项目,哪一个更好的编码方式,三个分开的计时器划分代码,还是只包含所有代码的计时器 谢谢 无论哪种方法使您的代码更容易理解。如果多个计时器彼此不同步,它们可能会对能源产生重大影响。现代CPU尽可能多地睡眠,允许它们一次周期性地睡眠几毫秒,可以显著提高电池寿命。如果你的计时器靠得很近,但不是在同一时间,那么系统睡眠的机会就少了

我在Xcode4中工作,在一个项目中,为了组织的目的,我使用了三个不同的NSTimer,但我意识到,除了名称之外,计时器是相同的,因此很容易将所有三个计时器合并为一个。对于我的项目,哪一个更好的编码方式,三个分开的计时器划分代码,还是只包含所有代码的计时器


谢谢

无论哪种方法使您的代码更容易理解。

如果多个计时器彼此不同步,它们可能会对能源产生重大影响。现代CPU尽可能多地睡眠,允许它们一次周期性地睡眠几毫秒,可以显著提高电池寿命。如果你的计时器靠得很近,但不是在同一时间,那么系统睡眠的机会就少了。我推荐会话704(构建高效的OS X应用程序)和会话712(能源最佳实践),从中详细讨论了这一点以及如何改进代码。苹果最近在改进计时器的管理方式和鼓励开发人员更好地将计时器组合在一起方面付出了巨大的努力

这并不是增加代码复杂性的理由,@HotLicks和@GerdK的观点是正确的,即代码的简单性往往胜过其他问题,但成本不应忽视,尤其是在现代CPU和高频定时器上


请注意,有一些新的NSTimer选项可以帮助您获得批处理计时器的好处,而无需在最新的操作系统中重新构造代码。有关这方面的更多信息,请参见上面的视频(仍在NDA下,因此我无法在此详细介绍)。

好的,计时器中没有“代码”,而是在计时器“滴答”时调用方法。您可以很容易地让一个计时器调用一个“主”方法,该方法反过来调用几个辅助方法,因此各个方法可以与它们自然“属于”的类保持关联。或者三个独立的计时器。无论什么是最自然的“分工”。@HotLicks说:“3个计时器与1个计时器的性能/效率差异不值得担心,更重要的是代码结构的清晰性。这看起来更像是一个答案,而不是一个注释。”。