Estoy tratando de registrar mi solicitud de notificaciones locales de esta manera:
UIApplication.sharedApplication().registerUserNotificationSettings(UIUserNotificationSettings(forTypes: UIUserNotificationType.Alert | UIUserNotificationType.Badge, categories: nil))
En Xcode 7 y Swift 2.0, recibo un error Binary Operator "|" cannot be applied to two UIUserNotificationType operands. Por favor, ayúdame.

Could not find an overload '|' that accepts the supplied argumentsRespuestas:
En Swift 2, muchos tipos para los que normalmente haría esto se han actualizado para cumplir con el protocolo OptionSetType. Esto permite una sintaxis de tipo matriz para su uso, y en su caso, puede usar lo siguiente.
Y en una nota relacionada, si desea verificar si un conjunto de opciones contiene una opción específica, ya no necesita usar AND bit a bit y una verificación nula. Simplemente puede preguntarle al conjunto de opciones si contiene un valor específico de la misma manera en que verificaría si una matriz contiene un valor.
En Swift 3 , las muestras deben escribirse de la siguiente manera:
y
fuente
flags |= .Alert?¿Puedes usarflags = [flags, .Alert]?UIUserNotificationType, es decirvar flags: UIUserNotificationType = [.Alert, .Badge], se tratará como un conjunto, y puede agregar un elemento utilizando métodos de instancia de conjunto comoinsert(),union(),unionInPlace(), o con el enfoque que usted ha mencionado sin preocuparse de los duplicados.UIUserNotificationTypey usas algo comovar flags = [UIUserNotificationType.Alert, UIUserNotificationType.Badge]en tu declaración, entonces se inferirá que el tipo de bandera es[UIUserNotificationType], y agregarle elementos a través de élappend()u otros métodos dará como resultado duplicados. En el caso de este último, simplemente puede inicializar una instanciaUIUserNotificationTypecon la matriz como entrada y todo estará bien, pero recomiendo el enfoque basado en conjuntos para mayor claridad.Puedes escribir lo siguiente:
fuente
NSTrackingAreaOptions.MouseEnteredAndExited.union(NSTrackingAreaOptions.MouseMoved).union(NSTrackingAreaOptions.ActiveAlways), pero gracias por una solución de trabajovar options : NSTrackingAreaOptions =[.MouseEnteredAndExited,.MouseMoved,.ActiveAlways]Lo que funcionó para mí fue
fuente
Esto se ha actualizado en Swift 3.
fuente