0
let types: UIUserNotificationType = [.alert, .sound, .badge, .none] 
let settings = UIUserNotificationSettings(forTypes: types, categories: nil) 
application.registerUserNotificationSettings(settings) 

oder this Code:Wo wird der keine Fall in Benachrichtigungen verwendet?

guard let settings = UIApplication.sharedApplication().currentUserNotificationSettings() where settings.types != .None else {} 

nicht sicher, wie Sinn zu machen, natürlich, wenn Sie es registrieren, dann würden Sie es unter Ihren Einstellungen Typen haben ...

Ich habe gelesen here und here aber kann es nicht herausfinden. Es konnte auch keine Dokumentation gefunden werden. Obwohl, wenn ich + drauf Clickcommand sagt:

die Anwendung keine UI auf eine Mitteilung vorlegen können empfangen werden

Ist es verwendet, dass, um anzuzeigen, wenn die Benachrichtigung der Benutzer empfangen wird tun können nichts? Wie ist das etwas, für das wir uns anmelden sollten ?! Was kann schief gehen, wenn wir uns dafür nicht anmelden?

Antwort

1

.none ist lediglich die Nulloption - weder .alert noch .sound noch .badge. Es ist keine Option, sondern eine Abwesenheit von Optionen.

Sie müssen nicht Code Register für .none zu schreiben, natürlich. Aber der Benutzer könnte konfigurieren Dinge auf diese Weise in den Einstellungen, die Fähigkeit für Benachrichtigungen vollständig zu deaktivieren, um Warnungen anzuzeigen, Abzeichen hinzufügen oder Sounds zu spielen, und Sie brauchen eine Möglichkeit, dies zu sagen und zu überprüfen.

Beachten Sie, dass .none (die Null-Option) nicht namentlich in Swift 3 importiert wird; es entspricht lediglich dem leeren Satz []. (Und in jedem Fall ist UIUserNotificationType in iOS 10 veraltet.)

+0

Ich habe gerade einen Schnitt zu der Frage gemacht, ich habe Code so gesehen, also meinen Sie, dass es sinnlos ist, '.none' in Ihre Einstellungen/Typen aufzunehmen ? Und basierend auf [dies] (http://stackoverflow.com/questions/26051950/check-if-local-notifications-are-enabled-in-ios-8#comment45823384_26052687) Kommentar scheint es ** ** einen Wert zu haben für die Registrierung – Honey

+0

Nein, ich denke, der erste Code, der über '.none' spricht, ist einfach dumm. Es hat keinerlei Auswirkungen auf das Verhalten der Laufzeit. Diese Art von Idiotie ist genau der Grund, warum der Name der Null-Option gelöscht wurde. – matt

+0

Hier ist eine andere Art, es zu betrachten. Dies ist ein Set. '.none' ist der leere Satz. Erinnern Sie sich an Ihre High School Mathe? Die leere Menge ist eine Teilmenge jedes Satzes. Außerdem ist die Vereinigung eines Satzes mit dem leeren Satz der ursprüngliche Satz. Daher gibt es keinen Grund, '.none' explizit wie im ersten Beispiel anzugeben, da dies der Spezifikation des Satzes nichts hinzufügt. – matt

Verwandte Themen