In Swift 2 wurden viele Typen, für die Sie dies normalerweise tun würden, aktualisiert, um dem OptionSetType-Protokoll zu entsprechen. Dies ermöglicht eine Array-ähnliche Syntax für die Verwendung. In Ihrem Fall können Sie Folgendes verwenden.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
Wenn Sie überprüfen möchten, ob ein Optionssatz eine bestimmte Option enthält, müssen Sie in diesem Zusammenhang nicht mehr bitweises UND und keine Prüfung verwenden. Sie können den Optionssatz einfach fragen, ob er einen bestimmten Wert enthält, genauso wie Sie prüfen würden, ob ein Array einen Wert enthält.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
if settings.types.contains(.Alert) {
// stuff
}
In Swift 3 müssen die Beispiele wie folgt geschrieben werden:
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
UIApplication.shared.registerUserNotificationSettings(settings)
und
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
if settings.types.contains(.alert) {
// stuff
}