Trong Swift 2, nhiều loại mà bạn thường làm điều này đã được cập nhật để phù hợp với giao thức OptionSetType. Điều này cho phép mảng như cú pháp để sử dụng và trong trường hợp của bạn, bạn có thể sử dụng như sau.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
Và trên một lưu ý liên quan, nếu bạn muốn kiểm tra xem một bộ tùy chọn có chứa một tùy chọn cụ thể hay không, bạn không còn cần phải sử dụng bitwise AND và kiểm tra không. Bạn có thể chỉ cần hỏi tùy chọn được đặt nếu nó chứa một giá trị cụ thể theo cùng cách mà bạn sẽ kiểm tra xem một mảng có chứa giá trị hay không.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
if settings.types.contains(.Alert) {
// stuff
}
Trong Swift 3 , các mẫu phải được viết như sau:
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
UIApplication.shared.registerUserNotificationSettings(settings)
và
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
if settings.types.contains(.alert) {
// stuff
}