我已经创建了一个UNNotification对象,因此我可以在我的应用中调用多个通知。
@available(iOS 10.0, *)
class AlertNotifications : NSObject, UNUserNotificationCenterDelegate {
weak var notifyDelegate : UNUserNotificationCenterDelegate?
override init() {
super.init()
}
func registerNotification() {
// notification authorization code
}
private func scheduleNotification() {
//notification scheduler code
}
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
print("calling completion")
completionHandler([.alert, .sound])
}
}
在我正在尝试设置通知的ViewController上,由于我的应用程序必须与iOS 9和10兼容,因此我不得不将调用包装在if语句中。
if #available(iOS 10.0, *) {
let notify = AlertNotifications()
notify.notifyDelegate = self
notify.registerNotification()
} else {
// Fallback on earlier versions
print("never called delegate")
}
不幸的是,这样做不会调用UNUserNotificationCenterDelegate
类AlertNotification
中创建的委托方法。我的假设是委托没有正确设置,但我不知道如何解决它。任何帮助表示赞赏。