Swift 3 本地通知 - 设置自动时区

Posted

技术标签:

【中文标题】Swift 3 本地通知 - 设置自动时区【英文标题】:Swift 3 Local Notifications - Setting Automatic Timezone 【发布时间】:2016-09-05 14:34:27 【问题描述】:

所以这在 Swift 2 中完美运行,但在 Swift 3 中却存在问题:

func myNotifications () 
    let interval = 2.0
    var daysOut = 2.0
    let myArray =getArray()
    for i in 0..<myArray.count 
        let message = ("\(myArray[i])\n-\(myArray[i])")
        let localNotification = UILocalNotification()
        localNotification.fireDate = Date(timeIntervalSinceNow: (60*60*24*daysOut))
        localNotification.alertBody = message
        localNotification.timeZone = NSTimeZone.autoupdatingCurrent
        localNotification.category = "Message"
        UIApplication.shared.scheduleLocalNotification(localNotification)
        daysOut += interval
    

    let arrayCount = Double(myArray.count)
    let lastNotif_Date = Date(timeIntervalSinceNow: (60*60*24*interval*(quoteCount+1)))
    userPref_NSDefault.set(lastNotif_Date, forKey: "notification_EndDate")

具体来说,这条线不再有效,这很重要,因为我有多个时区的用户,我想确保它有效:

  localNotification.timeZone = NSTimeZone.autoupdatingCurrent

我收到错误消息:

类型“NSTimeZone”没有成员“autoUpdatingCurrent”

有什么想法吗?我尝试了“timeZone.automatic”、“.automatic”和其他一些变体,但无法弄清楚。

【问题讨论】:

localNotification.timeZone = TimeZone.autoupdatingCurrent UILocalNotification 在 ios10 中已弃用 成功了,谢谢。奇怪,我会想如果自动迁移会处理它那么简单。但是,如果您还说 UILocalNotification 已被弃用,我是否会遇到更大的问题? 暂时没问题,但以后您需要更改代码 【参考方案1】:
    autoupdatingCurrent != autoupdatingCurrent NSTimeZone 已重命名为 TimeZone

【讨论】:

是的,但他的错误信息显示为大写 U,他有一个错字。

以上是关于Swift 3 本地通知 - 设置自动时区的主要内容,如果未能解决你的问题,请参考以下文章

设置特定日期和时间的本地通知 swift 3

用户选择的 swift 3 重复间隔中的本地通知

将本地通知设置为 swift 3 前 1 天或 2 天前

Swift 3 本地通知未触发

如何在swift 3中每天在特定时间触发本地通知

Swift:多个本地通知,但只显示最新的