ios - 每天更新(我的代码有效吗?)

标签 ios swift nsdate

我想每天更新 viewDidLoad() 中的代码 - 即使应用程序未运行 - 关闭或在后台。

let Date = NSDate()
let Calendar = NSCalendar.currentCalendar()

var Days = 20
var Hours = 5
var Difference = 0

override func viewDidLoad() {

let FireDate = userCalendar.components(NSCalendarUnit.Hour, fromDate: Date)

if (FireDate.hour == 7) {
      days--
      Difference = (Days / Hours)
    }

}

此代码无法按我希望的方式运行。

最佳答案

如果该代码在 7 处运行,则检查将成功。也就是说,考虑到用户的时区设置,运行它的设备上的值为 7。

此代码不会每天自动运行。您不会显示代码在哪里,但没有任何东西会在每天的设定时间自动运行 iOS 应用程序。可能您可以发送静默推送作为触发器,但您应该真正计划让应用程序在用户打开它时运行,而不是自动打开。任何时间敏感的离线处理都应该由服务器完成...


您还可以查看使用 func applicationSignificantTimeChange(_ application: UIApplication) 以便在日期更改时通知应用程序,结合您在 application:didFinishLaunchingWithOptions 中的一般处理: .

关于ios - 每天更新(我的代码有效吗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36281282/

相关文章:

ios - dateWithTimeIntervalSince1970 方法返回不同的时区

iphone - 没有 xCode 的 Phonegap WEB-APP

Swift - 将 RSSI 转换为距离

ios - three20奇怪的导航问题

ios - 从带有部分的 SwiftUI 列表中删除 CoreData

ios - UIPageViewController 不允许识别 UIScreenEdgePanGestureRecognizer

ios - NSString 到 NSDate for mm/dd/yyyy hh :mm:ss format

ios - 字符串转换的 NSDate

ios - setHidden 背后的目的

iphone - iOS 中的 dispatch_async 内存问题