每天午夜运行代码

时间:2017-07-07 14:55:55

标签: swift macos timer

我想每天午夜更新状态。但是计时器是间隔的。我该如何设置白天的间隔

var timer = Timer()

timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerAction), userInfo: nil, repeats: true)

// called every time interval from the timer
func timerAction() {

}

1 个答案:

答案 0 :(得分:2)

无需计时器。观察通知

static let NSCalendarDayChanged: NSNotification.Name
  

每当系统日历日发生变化时发布,由系统日历,区域设置和时区决定。此通知不提供对象。

     

如果当天发生变化时设备处于睡眠状态,则此通知将在唤醒时发布。如果设备已经睡了好几天,只有一个通知会在唤醒时发布。

NotificationCenter.default.addObserver(self, selector:#selector(calendarDayDidChange), name:.NSCalendarDayChanged, object:nil)

...

func calendarDayDidChange()
{
    // do something at midnight
}
相关问题