У 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
}