2016-10-07 10 views
0

私はプッシュ通知のための例に従うことをしようとしています https://firebase.google.com/docs/cloud-messaging/ios/clientios10、スウィフト3とFirebaseプッシュ通知のセットアップ

私は例

<pre> 
extension AppDelegate : FIRMessagingDelegate { 
    // Receive data message on iOS 10 devices. 
    func applicationReceivedRemoteMessage(remoteMessage:   FIRMessagingRemoteMessage) { 
     print("%@", remoteMessage.appData) 
} 

}

ためappDelete.swift 上の問題が生じています

エラーは

メトD 'applicationReceivedRemoteMessage(remoteMessage :)' プロトコルで必要とされるものとは異なる引数名を持つ 'FIRMessagingDelegate'( 'applicationReceivedRemoteMessage')

私は

enter image description here

画面に次のエラーを取得し、私が持っています次のココポッドもあります

Analyzing dependencies 
Downloading dependencies 
Installing Firebase (3.7.1) 
Installing FirebaseAnalytics (3.4.4) 
Installing FirebaseCore (3.4.3) 
Installing FirebaseInstanceID (1.0.8) 
Installing FirebaseMessaging (1.2.0) 
Installing GoogleIPhoneUtilities (1.2.1) 
Installing GoogleInterchangeUtilities (1.2.2) 
Installing GoogleSymbolUtilities (1.1.2) 
Installing GoogleUtilities (1.3.2) 
Generating Pods project 
Integrating client project 

誰かが間違っていますか?私はプロジェクトの例を見て、すべてをコンパイルするとOKです。

+0

コードのスクリーンショットを追加する代わりに、実際のコードを質問に追加してください。エラーメッセージをキャプチャするには、赤いインジケータと「Issue Navigatorで表示」を右クリックします。 –

+0

こんにちはフランク、私がスクリーンショットをした理由は、xcodeがAppDelegateの例にあったほとんどのコーディングを変更するように頼んでいたことです。 https://github.com/firebase/quickstart-ios/blob/master /messaging/FCMSwift/AppDelegate.swift#L33-L51 これは約17日前に更新されました。 – hesh

答えて

1

問題は、見ているサンプルコードがSwift 2.3で、プロジェクトがSwift 3.0になっていることです。

これに対処するためのいくつかの方法があります:

  1. は先に行くと2.3 SWIFTを使用しています。プロジェクトに行って、Build Settingsを選択し、を使用してください。レガシースイフト言語バージョンはいを使用してください。

  2. Xcodeに自動更新を依頼してください。 編集>変換>現在のスウィフト構文...に移動し、あなたが見ている問題にうまく対処しなければなりません。

  3. コードを手動で更新します。あなたが見ることができるように、Xcodeは、一般的に更新されたコードがために、「はず」されているものを知っているが、それは次のように少し見えるものに更新することができ、あなたにトラブルを与えている方法のようになります。

    func application(application: UIApplication, 
           didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    
        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() 
    
        FIRApp.configure() 
    
        // Add observer for InstanceID token refresh callback. 
        NotificationCenter.default.addObserver(self, 
                 selector: #selector(self.tokenRefreshNotification), 
                 name: NSNotification.Name.firInstanceIDTokenRefresh, 
                 object: nil) 
    
        return true 
    } 
    
  4. バグFirebaseサンプルコードの人に「このサンプルをSwift 3.0にアップデートするのを忘れました!」と言ってください。幸いにも、私はそれを行う立場にいるので、今すぐ伝えます。 :)

+0

こんにちはトッドお世話になりました。また、Firebaseチームに通知してくれてありがとう – hesh

関連する問題