Ios 每天在特定时间重置特定值
在我的应用程序中,我有一个待办对象数组。每天在某个特定的时间,比如说13点,待办事项的数组必须被修改。Ios 每天在特定时间重置特定值,ios,swift,swift3,nsdate,Ios,Swift,Swift3,Nsdate,在我的应用程序中,我有一个待办对象数组。每天在某个特定的时间,比如说13点,待办事项的数组必须被修改。 我每天可以使用什么样的函数触发此事件 当应用程序位于前台时,您可以设置一个计时器,当某个时间阈值过去时触发。 如果应用程序在时间流逝时处于后台,您可以在下次启动应用程序时检查阈值是否已过,然后在该时间进行修改 例如,要添加计时器,请在AppDelegate中添加: private var myTimer: Timer? func applicationWillResignActiv
我每天可以使用什么样的函数触发此事件 当应用程序位于前台时,您可以设置一个计时器,当某个时间阈值过去时触发。 如果应用程序在时间流逝时处于后台,您可以在下次启动应用程序时检查阈值是否已过,然后在该时间进行修改 例如,要添加计时器,请在AppDelegate中添加:
private var myTimer: Timer?
func applicationWillResignActive(_ application: UIApplication) {
myTimer?.invalidate()
}
func applicationDidBecomeActive(_ application: UIApplication) {
//Scheduling for 1 PM (13:00)
var dateComponents = Calendar.current.dateComponents([.minute, .hour, .month, .day, .year], from: Date())
dateComponents.hour = 13
dateComponents.minute = 00
dateComponents.timeZone = TimeZone.current
if let timerDate = Calendar.current.date(from: dateComponents) {
myTimer = Timer(fireAt: timerDate, interval: 0, target: self, selector: #selector(timerFired), userInfo: nil, repeats: false)
}
if let myTimer = myTimer {
RunLoop.current.add(myTimer, forMode: RunLoopMode.commonModes)
}
}
func timerFired() {
//Do you update here
}
您可以在
ApplicationIDBecomeActive
方法中添加一个额外的检查,以检查当天是否已经完成了修改,以防阈值在应用程序处于后台或非活动状态时通过。当应用程序处于前台时,您可以设置一个计时器,当某个时间阈值通过时触发。
如果应用程序在时间流逝时处于后台,您可以在下次启动应用程序时检查阈值是否已过,然后在该时间进行修改
例如,要添加计时器,请在AppDelegate中添加:
private var myTimer: Timer?
func applicationWillResignActive(_ application: UIApplication) {
myTimer?.invalidate()
}
func applicationDidBecomeActive(_ application: UIApplication) {
//Scheduling for 1 PM (13:00)
var dateComponents = Calendar.current.dateComponents([.minute, .hour, .month, .day, .year], from: Date())
dateComponents.hour = 13
dateComponents.minute = 00
dateComponents.timeZone = TimeZone.current
if let timerDate = Calendar.current.date(from: dateComponents) {
myTimer = Timer(fireAt: timerDate, interval: 0, target: self, selector: #selector(timerFired), userInfo: nil, repeats: false)
}
if let myTimer = myTimer {
RunLoop.current.add(myTimer, forMode: RunLoopMode.commonModes)
}
}
func timerFired() {
//Do you update here
}
您可以在
ApplicationIDBecomeActive
方法中添加一个额外的检查,以检查您当天的修改是否已经完成,以防在应用程序处于后台或非活动状态时超过阈值。您可以在使用Web服务时在服务器上设置cron作业,但我目前没有使用任何Web服务。即使没有任何互联网连接,我也希望重置这些值。好的!!我不是一名ios开发者,但从事ios使用的Web服务,并且cron作业设置在服务器上,我们可以在服务器上触发任何带有日期时间的事件。您可以在使用Web服务时在服务器上设置cron作业。目前为止,我没有使用任何Web服务。即使没有任何互联网连接,我也希望重置这些值。好的!!我不是一个ios开发者,但我在ios中使用的Web服务上工作,cron作业设置在服务器上,我们可以在服务器上触发任何带有日期时间的事件。事实上,我决定按照你说的那样做。每次在my UserDefault中访问应用程序时,我都会设置一个日期对象。然后,每次重新打开应用程序时,我都会检查新的访问日期是否与我的UserDefault中的最后一个日期相同,并在不同的日期修改我的to do对象。现在一切正常!!事实上,我决定照你说的做。每次在my UserDefault中访问应用程序时,我都会设置一个日期对象。然后,每次重新打开应用程序时,我都会检查新的访问日期是否与我的UserDefault中的最后一个日期相同,并在不同的日期修改我的to do对象。现在一切正常!!