如果语句没有调用Delegate方法

时间:2017-02-01 16:28:20

标签: ios swift swift-protocols

我已经创建了一个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")
}

不幸的是,这样做不会调用UNUserNotificationCenterDelegateAlertNotification中创建的委托方法。我的假设是委托没有正确设置,但我不知道如何解决它。任何帮助表示赞赏。

0 个答案:

没有答案