在 Swift 2 中,许多您通常需要执行此操作的类型已经更新为符合 OptionSetType 协议。这允许使用类似于数组的语法进行使用,在您的情况下,您可以使用以下内容。
在 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) {
}
在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) {
}