В Swift 2 многие типы, для которых вы обычно делаете это, были обновлены для соответствия протоколу OptionSetType. Это позволяет использовать массив, подобный синтаксису, и в вашем случае вы можете использовать следующее.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
И на заметку, если вы хотите проверить, содержит ли набор опций конкретную опцию, вам больше не нужно использовать побитовое И и нулевую проверку. Вы можете просто спросить набор параметров, содержит ли он определенное значение, так же, как вы проверили бы, содержит ли массив значение.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
if settings.types.contains(.Alert) {
// stuff
}
В Swift 3 образцы должны быть записаны следующим образом:
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
UIApplication.shared.registerUserNotificationSettings(settings)
и
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
if settings.types.contains(.alert) {
// stuff
}