W Swift 2 wiele typów, dla których zwykle to robisz, zostało zaktualizowanych, aby były zgodne z protokołem OptionSetType. Pozwala to na użycie tablicy podobnej do składni, aw twoim przypadku możesz użyć następujących.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
I w powiązanej notatce, jeśli chcesz sprawdzić, czy zestaw opcji zawiera określoną opcję, nie musisz już używać bitowego AND i zerowego sprawdzania. Możesz po prostu zapytać zestaw opcji, czy zawiera on określoną wartość, w taki sam sposób, jak sprawdziłbyś, czy tablica zawiera wartość.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
if settings.types.contains(.Alert) {
// stuff
}
W Swift 3 próbki należy zapisać w następujący sposób:
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
UIApplication.shared.registerUserNotificationSettings(settings)
i
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
if settings.types.contains(.alert) {
// stuff
}