0

我正在关注本教程:https ://medium.com/flawless-app-stories/ios-remote-push-notifications-in-a-nutshell-d05f5ccac252

但由于某种原因,我得到

无法将“AppDelegate”分配给“UNUserNotificationCenterDelegate”。

那条线有什么作用?如果我将其注释掉,其余代码将起作用,并且会提示用户是否要允许通知。

func registerForPushNotifications() {
    UNUserNotificationCenter.current().delegate = self // line in question
    UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) {
        (granted, error) in
        print("Permission granted: \(granted)")
        // 1. Check if permission granted
        guard granted else { return }
        // 2. Attempt registration for remote notifications on the main thread
        DispatchQueue.main.async {
            UIApplication.shared.registerForRemoteNotifications()
        }
    }
}
4

2 回答 2

7

您需要首先在您的课程中import使用相关的,如下面的代码。delegate (UNUserNotificationCenterDelegate)AppDelegate

class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate

在您的代码UNUserNotificationCenter.current().delegate = self中,自我没有响应要求delegate,这就是您收到错误消息的原因。

于 2018-04-04T06:48:23.587 回答
3

导入UNUserNotificationCenterDelegate您的AppDelegate班级,它应该可以正常工作。

于 2018-04-04T09:24:08.300 回答