No Swift 2, muitos tipos para os quais você normalmente faria isso foram atualizados para estar em conformidade com o protocolo OptionSetType. Isso permite uma matriz como sintaxe para uso e, no seu caso, você pode usar o seguinte.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
E em uma nota relacionada, se você deseja verificar se um conjunto de opções contém uma opção específica, não precisa mais usar AND bit a bit e uma verificação nula. Você pode simplesmente perguntar ao conjunto de opções se ele contém um valor específico da mesma maneira que você verificaria se uma matriz continha um valor.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
if settings.types.contains(.Alert) {
// stuff
}
No Swift 3 , as amostras devem ser escritas da seguinte maneira:
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
}