Dans Swift 2, de nombreux types pour lesquels vous effectuez généralement cette opération ont été mis à jour pour se conformer au protocole OptionSetType. Cela permet une syntaxe de type tableau pour l'utilisation, et dans votre cas, vous pouvez utiliser ce qui suit.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
Et sur une note connexe, si vous voulez vérifier si un jeu d'options contient une option spécifique, vous n'avez plus besoin d'utiliser ET au niveau du bit et une vérification nulle. Vous pouvez simplement demander au jeu d'options s'il contient une valeur spécifique de la même manière que vous vérifieriez si un tableau contenait une valeur.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
if settings.types.contains(.Alert) {
// stuff
}
Dans Swift 3 , les échantillons doivent être écrits comme suit:
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
UIApplication.shared.registerUserNotificationSettings(settings)
et
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
if settings.types.contains(.alert) {
// stuff
}