18

私は、Firebaseを使用してプッシュ通知を処理しようとしています。 Firebaseポッド( 'Firebase/Core'と 'FirebaseMessaging'ポッド)がインストールされています。未宣言型の使用UNAuthorizationOptions

そして、私はプロジェクト

import Firebase 

にFirebaseをインポートした後、私は、この(コードは公式ドキュメントからコピーされた)のようなFirebaseアプリ設定している:私が試したその後

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) 
-> Bool {FIRApp.configure() } 

をこのコードを使用してください(コードは公式の文書からコピーされています):

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(forTypes: [.Alert, .Badge, .Sound], categories: nil) 
      application.registerUserNotificationSettings(settings) 
     } 

     application.registerForRemoteNotifications() 

タイトルからエラーが発生しましたこれは言う:

宣言されていないタイプのUNAuthorizationOptionsの使用

はまた、私はUNUserNotificationCenterクラスに関連した同じエラーが生じています。

私は、このエラーの原因は何スウィフト2.2とXcode 7.3.1

を使用していますか?

答えて

20

UserNotifications.frameworkはiOS 10から入手可能で、XOS 7.3以降のiOS 9以下で動作しているため、if #available(iOS 10.0, *) {を追加する必要はありません。他の部分のみを直接書き込み、リモート通知を登録してください。

let settings: UIUserNotificationSettings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil) 
application.registerUserNotificationSettings(settings) 
application.registerForRemoteNotifications() 
+0

編集した回答を確認してください。 –

+0

ああ、ありがとう、私の悪い。これまで#availableディレクティブを使用していませんでした。そのものを読む必要があります:) – Whirlwind

+0

@Whirlwindようこそメイト:) –

16

これらのフレームワークを呼び出す前に、import UserNotificationsにする必要があります。そして、Nirav Dが言ったことは真実です、それはiOS 10の新しいフレームワークです。正しい展開ターゲットを選択することも忘れないでください。