代码之家  ›  专栏  ›  技术社区  ›  user6728767

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

  •  0
  • user6728767  · 技术社区  · 6 年前

    我将学习本教程: 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()
            }
        }
    }
    
    2 回复  |  直到 6 年前
        1
  •  7
  •   TheTiger    6 年前

    你需要 import 相关的 delegate (UNUserNotificationCenterDelegate) 在您的 AppDelegate 类,如下面的代码所示。

    class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate
    

    在您的代码中 UNUserNotificationCenter.current().delegate = self self不响应要求 代表 这就是为什么您会收到错误消息。

        2
  •  3
  •   TheTiger    6 年前

    进口 UNUserNotificationCenterDelegate 进入您的 AppDelegate 上课,应该很好。

    推荐文章