Ios Firebase-无法分配类型为';AppDelegate';输入';非通知中心代表&x27;

Ios Firebase-无法分配类型为';AppDelegate';输入';非通知中心代表&x27;,ios,swift,firebase,firebase-cloud-messaging,Ios,Swift,Firebase,Firebase Cloud Messaging,使用本教程部署firebase时,我总是会遇到编译错误: 我的部署SDK是9.0 我收到的错误: 我怎样才能解决这个问题 无法将“AppDelegate”类型的值分配给“UNUserNotificationCenterDelegate”类型 第一个场景-我一步一步地做了什么(遵循教程): pod init包含以下内容: 吊舱“火力基地/核心” 吊舱“火力基地/信息” 吊舱安装 AppDelegate类顶部的“导入Firebase” 第二个场景-通过github存储库下载google demo

使用本教程部署firebase时,我总是会遇到编译错误: 我的部署SDK是9.0

我收到的错误: 我怎样才能解决这个问题

无法将“AppDelegate”类型的值分配给“UNUserNotificationCenterDelegate”类型

第一个场景-我一步一步地做了什么(遵循教程):
  • pod init包含以下内容: 吊舱“火力基地/核心” 吊舱“火力基地/信息”
  • 吊舱安装
  • AppDelegate类顶部的“导入Firebase”
第二个场景-通过github存储库下载google demo iOS客户端应用程序(“下的消息传递”文件夹)
  • 编译他们的应用程序。。。很好
  • 符合我现有的XCode项目,其逻辑如下所示:
  • pod init包含以下内容:pod“Firebase/Messaging”
  • 吊舱安装
  • 导入以下内容:UIKit、UserNotifications、Firebase、FirebaseInstanceID、FirebaseMessaging
AppDelegate中的代码:

func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // [START register_for_notifications]
        if #available(iOS 10.0, *) {
            let authOptions : UNAuthorizationOptions = [.alert, .badge, .sound]
            UNUserNotificationCenter.current().requestAuthorization(
                options: authOptions,
                completionHandler: {_,_ in })
            // For iOS 10 display notification (sent via APNS)
            UNUserNotificationCenter.current().delegate = self
            // For iOS 10 data message (sent via FCM)
            FIRMessaging.messaging().remoteMessageDelegate = self
        } else {
            let settings: UIUserNotificationSettings =
                UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
            application.registerUserNotificationSettings(settings)
        }
        application.registerForRemoteNotifications()
        // [END register_for_notifications]
        FIRApp.configure()
        // Add observer for InstanceID token refresh callback.
        NotificationCenter.default.addObserver(self,
                                               selector: #selector(self.tokenRefreshNotification),
                                               name: .firInstanceIDTokenRefresh,
                                               object: nil)
        return true
    }


    

在AppDelegate的末尾,您需要添加2个扩展名(UNUserNotificationCenterDelegate、MessagingDelegate)

请参阅此示例应用程序的源代码:

您的AppDelegate类是否实现了“UnuseNotificationCenterDelegate”协议?如果不是,编译器就无法匹配类型,这就是为什么会出现错误。奇怪的是,google的ios客户端示例只实现UIResponder、UIApplicationLegate。。。我添加了UnuseNotificationCenterDelegate和FIRMessagingDelegate。现在,它说“AppDelegate”与“firmMessageDelegate”不符。我要研究一下。谢谢,明白了。。。这个例子有两个扩展。。。哈哈,但是教程没有任何与此相关的内容。总之。@user3427013您是如何解决“现在,它说“AppDelegate”与“FIRMessagingDelegate”不一致的问题的?我也发现了这个错误。@JozemiteApps请参见下面的答案。FIRMessagingDelegate已重命名为MessagingDelegate