web-dev-qa-db-ja.com

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

Firebaseを使用してプッシュ通知を処理しようとしています。 Firebaseポッド( 'Firebase/Core'および 'FirebaseMessaging'ポッド)をインストールしました。

Firebaseをプロジェクトにインポートした後

import 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クラスに関連する同じエラーが発生しています。

Swift 2.2とXcode 7.3.1を使用しています

このエラーの原因は何ですか?

19
Whirlwind

_UserNotifications.framework_はiOS 10から利用可能で、iOS 9以下でXcode 7.3を使用しているため、そのif #available(iOS 10.0, *) {を追加し、他の部分のみを直接書き込み、リモートで登録する必要はありません。通知。

_let settings: UIUserNotificationSettings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
application.registerUserNotificationSettings(settings)
application.registerForRemoteNotifications()
_
20
Nirav D

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

22
Pang Ho Ming