Timer 当当前时间达到特定时间时启动函数的最佳方式

Timer 当当前时间达到特定时间时启动函数的最佳方式,timer,swift4.1,Timer,Swift4.1,嘿,我想改变我的应用程序的模式,从白天到晚上,当设备的时钟点击下午6点,并再次改变它时,时钟点击上午6点。现在我每秒钟都在使用定时器来检查时间并启动我的功能。但我觉得这不是最好的方法。您好,是的,您的方法不是最好的方法,因为这会消耗用户的设备电池寿命。我在我的项目中应用了一个技巧。您可以做一件事,当应用程序启动时,检查“特定时间”是否已达到。当设备“时区”或“时钟时间”发生变化时,您还需要检查它 还添加以下通知:- NotificationCenter.default.addObser

嘿,我想改变我的应用程序的模式,从白天到晚上,当设备的时钟点击下午6点,并再次改变它时,时钟点击上午6点。现在我每秒钟都在使用定时器来检查时间并启动我的功能。但我觉得这不是最好的方法。

您好,是的,您的方法不是最好的方法,因为这会消耗用户的设备电池寿命。我在我的项目中应用了一个技巧。您可以做一件事,当应用程序启动时,检查“特定时间”是否已达到。当设备“时区”或“时钟时间”发生变化时,您还需要检查它

还添加以下通知:-

     NotificationCenter.default.addObserver(self, selector: #selector(self.checkTimeToFireMethod), name: NSNotification.Name.NSSystemClockDidChange, object: nil)
   NotificationCenter.default.addObserver(self, selector: #selector(self.checkTimeToFireMethod), name: NSNotification.Name.NSSystemTimeZoneDidChange, object: nil)
func myFuncation(){
} 
     NotificationCenter.default.addObserver(self, selector: #selector(self.checkTimeToFireMethod), name: NSNotification.Name.NSSystemClockDidChange, object: nil)
   NotificationCenter.default.addObserver(self, selector: #selector(self.checkTimeToFireMethod), name: NSNotification.Name.NSSystemTimeZoneDidChange, object: nil)