首页 > 解决方案 > 在“FIRMessaging *”类型的对象上找不到属性“remoteMessageDelegate”

问题描述

我正在使用一些 Swift 和 FCM 代码,在更新 pod 后我遇到了两个错误。我已经进行了研究,但无法弄清楚如何解决它。

这是代码:

// For iOS 10 display notification (sent via APNS)
[UNUserNotificationCenter currentNotificationCenter].delegate = self;
// For iOS 10 data message (sent via FCM)
[FIRMessaging messaging].remoteMessageDelegate = self;

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    [[FIRInstanceID instanceID] setAPNSToken:deviceToken type:FIRInstanceIDAPNSTokenTypeProd]; error message———&gt; No visible @interface for 'FIRInstanceID' declares the selector 'setAPNSToken:type:'<--error message ends  

    NSLog(@"deviceToken1 = %@; %@",deviceToken,[[FIRInstanceID instanceID] token]);
}

这是错误消息:

在“FIRMessaging *”类型的对象上找不到属性“remoteMessageDelegate”

标签: iosobjective-cswiftfirebasefirebase-cloud-messaging

解决方案


在 5.0.0 版中,他们将其删除remoteMessageDelegate并替换为delegate
https ://firebase.google.com/support/release-notes/ios#5.0.0
发行说明 5.0.0

delegate现在也在当前的FIRMessagingAPI 文档中: https ://firebase.google.com/docs/reference/ios/firebasemessaging/api/reference/Classes/FIRMessaging#/c:objc(cs)FIRMessaging(py)delegate

委托处理 FCM 令牌刷新,以及通过 FCM 直接通道接收的远程数据消息。

@property (readwrite, nonatomic, nullable) id<FIRMessagingDelegate> delegate;

您可以参考他们的 quickstart-ios 代码以了解示例用法:
https ://github.com/firebase/quickstart-ios/blob/master/messaging/MessagingExample/AppDelegate.m#L36

  // [START set_messaging_delegate]
  [FIRMessaging messaging].delegate = self;
  // [END set_messaging_delegate]

推荐阅读