In Swift 2, molti tipi per cui lo faresti normalmente sono stati aggiornati per conformarsi al protocollo OptionSetType. Ciò consente la sintassi come array per l'utilizzo e, nel tuo caso, puoi utilizzare quanto segue.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
E su una nota correlata, se si desidera verificare se un set di opzioni contiene un'opzione specifica, non è più necessario utilizzare AND bit a bit e un controllo zero. Puoi semplicemente chiedere l'opzione impostata se contiene un valore specifico nello stesso modo in cui verifichi se un array contenesse un valore.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
if settings.types.contains(.Alert) {
// stuff
}
In Swift 3 , i campioni devono essere scritti come segue:
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
UIApplication.shared.registerUserNotificationSettings(settings)
e
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
if settings.types.contains(.alert) {
// stuff
}