在Swift 2中,您通常会这样做的许多类型都已更新,以符合OptionSetType协议.这允许使用类似数组的语法,在您的情况下,可以使用以下语法.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
另外,如果要判断选项集是否包含特定选项,则不再需要使用按位AND和NIL判断.您可以简单地询问选项集是否包含特定值,方法与判断数组是否包含值的方式相同.
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
}