Ios Firebase-无法分配类型为';AppDelegate';输入';非通知中心代表&x27;
使用本教程部署firebase时,我总是会遇到编译错误: 我的部署SDK是9.0 我收到的错误: 我怎样才能解决这个问题 无法将“AppDelegate”类型的值分配给“UNUserNotificationCenterDelegate”类型 第一个场景-我一步一步地做了什么(遵循教程):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
- pod init包含以下内容: 吊舱“火力基地/核心” 吊舱“火力基地/信息”
- 吊舱安装
- AppDelegate类顶部的“导入Firebase”
- 编译他们的应用程序。。。很好
- 符合我现有的XCode项目,其逻辑如下所示:
- pod init包含以下内容:pod“Firebase/Messaging”
- 吊舱安装
- 导入以下内容:UIKit、UserNotifications、Firebase、FirebaseInstanceID、FirebaseMessaging
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