我已经寻找了很多地方,但是我找不到这个问题的答案。 我想要一个特定的函数在每天早上6点和晚上6点运行一次,用于我的应用程序的日/夜模式。 这不需要在后台运行,只需要当应用程序打开时运行,但同时我还想要执行应用程序的其他功能,同时检查时间。
我已经寻找了很多地方,但是我找不到这个问题的答案。 我想要一个特定的函数在每天早上6点和晚上6点运行一次,用于我的应用程序的日/夜模式。 这不需要在后台运行,只需要当应用程序打开时运行,但同时我还想要执行应用程序的其他功能,同时检查时间。
Calendar
对象设置一个Date
。将您的特定时间以军事小时制(从00:00到23:59,其中00:00表示午夜)放入其中,如果您的应用程序在前台并且指定的时间到达,则会执行您使用的函数作为选择器。override func viewDidLoad() {
super.viewDidLoad()
let calendar = Calendar.current
let now = Date()
let date = calendar.date(
bySettingHour: 23,
minute: 52,
second: 0,
of: now)!
let timer = Timer(fireAt: date, interval: 0, target: self, selector: #selector(runCode), userInfo: nil, repeats: false)
RunLoop.main.add(timer, forMode: RunLoop.Mode.common)
}
func runCode() {
print("Do whatever here")
}