2016-10-11 2 views
3

Ich versuche Swift zu lernen und gehe durch ein Tutorial über Push-Benachrichtigungen.Art des Ausdrucks ist mehrdeutig ohne mehr Kontext in Swift 3

let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge , .Sound], categories: nil) 

Ist mir den Fehler geben

"Art des Ausdrucks, ohne mehr Kontext mehrdeutig".

Ich habe diese Zeile direkt aus einem Lernprogramm kopiert und eingefügt und dieselbe Zeile in StackOverFlow gefunden.

Was mache ich falsch?
Ich verwende Xcode 8.

+0

Methinks dort dieses Tier sein? ;) http://balancedcode.com/blog/files/de01930f6f2cf9e4c886531eca028cba-0.html Ich musste es mit xCodes Cues für Swift 3 arbeiten. –

Antwort

11

Schauen Sie sich die Dokumentation für UIUserNotificationSettings an. Seine Signatur hat sich in Swift 3 geändert, ebenso wie die Werte für die Typen.

Sie benötigen:

let settings = UIUserNotificationSettings(types: [.alert, .badge , .sound], categories: nil) 

Natürlich, wenn Sie nur iOS 10 und später unterstützt, dann sollten Sie UIUserNotificationSettings nicht verwenden, da es jetzt veraltet. Verwenden Sie stattdessen UNNotificationSettings. Wenn Sie jedoch iOS 9 oder früher unterstützen, ist die Verwendung von UIUserNotificationSettings in Ordnung, solange Sie die aktualisierte Syntax ändern.

+0

Vielen Dank, Maddy. Ich bin mir bewusst, dass ios 10 und später die UNNotificationSettings-Klasse verwenden sollte, aber ich bin gerade dabei anzufangen und war nur in der Lage, ein handhaltendes Tutorial für ios 9 zu finden. Also werde ich von dort starten. –

1

UIUserNotificationSettings ist mit UNNotificationSettings in iOS 10 veraltet, wenn Sie UNNotificationSettings implementieren möchten dann wie unten implementieren.

Zuerst müssen Sie UserNotifications dafür importieren.

let center = UNUserNotificationCenter.current() 
center.requestAuthorization(options: [.alert, .badge , .sound]) { 
    (granted, error) in 

} 

Für weitere Informationen zu diesem Thema dieses tutorial von Michał Kałużny überprüfen UserNotifications.framework

Verwandte Themen