18

Ich versuche Firebase zu verwenden, um Push-Benachrichtigungen zu behandeln. Ich habe Firebase Pod (Firebase/Core und FirebaseMessaging Pods) installiert.Verwendung von nicht deklarierten Typ UNAuthorizationOptions

Und nachdem ich Firebase in das Projekt importiert

import Firebase 

ich die Firebase App wie diese konfiguriert haben (Code wird von der offiziellen Dokumente kopiert):

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

Danach habe ich versucht, benutze diesen Code (Code wird von offiziellen Dokumenten kopiert):

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() 

Aber ich habe den Fehler vom Titel die sagt:

Verwendung von nicht deklarierten Typ UNAuthorizationOptions

auch ich den gleichen Fehler auf die UNUserNotificationCenter Klasse bezogen habe.

Ich bin mit Swift 2.2 und Xcode 7.3.1

Was ist die Ursache für diesen Fehler?

Antwort

20

UserNotifications.framework ist verfügbar von iOS 10 und Sie arbeiten mit Xcode 7.3 bedeutet mit iOS 9 und niedriger, So müssen Sie nicht hinzufügen, dass if #available(iOS 10.0, *) {, nur sonst Teil direkt schreiben und Remote-Benachrichtigungen registrieren.

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

Bitte überprüfen Sie die bearbeitete Antwort. –

+0

Ah danke, mein Schlechter. Ich habe die # available Direktive bisher noch nicht wirklich benutzt. Ich muss das Zeug lesen :) – Whirlwind

+0

@Whirlwind Willkommen Kumpel :) –

16

müssen Sie import UserNotifications vor dem Aufruf dieser Rahmen. Und was Nirav D gesagt hat, ist wahr, es ist ein neues Framework in iOS 10, sollte auch daran denken, das richtige Deployment-Ziel auszuwählen.

Verwandte Themen