1

我使用的是 iOS 10.3.2 Beta 4 和 xcode 8.3.2。我试图每天在同一时间触发通知,但是通知似乎从未触发。如果我不使用日历触发器并使用时间间隔触发器,它们会按预期工作。

这是我的代码

let content = UNMutableNotificationContent()
    content.title = "Daily Notification"
    content.subtitle = ""
    content.body = NSLocalizedString("Hello I am a notification", comment: "Comment")
    content.badge = 1
    content.sound = UNNotificationSound.default()

    let calendar = Calendar.current
    var dateComponents = calendar.dateComponents([.day, .month, .year, .hour], from: Date())
    dateComponents.hour = 14
    dateComponents.minute = 55

    let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)

    NSLog("Setting daily notification - \(dateComponents)")

    let request = UNNotificationRequest(identifier: "dailyWarning", content: content, trigger: trigger)

    center.add(request, withCompletionHandler: { error in

        if error != nil {
            NSLog("Error occurred")
        } else {
            NSLog("Request added successfully: %@", request)
        }
    })
4

1 回答 1

2

尝试像这样创建触发器:

var dateComponents = DateComponents()
dateComponents.hour = 14
dateComponents.minute = 55
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true) // Setting repeats to true will trigger the notification daily

有关为什么只提供hourminutes就足够的更多信息,请参阅此处文档中清单 1上面的说明。

于 2017-05-01T13:42:01.103 回答