¿Cambiar la instrucción para NS_OPTIONS (RawOptionSetType) importadas en Swift?

La declaración de cambio en Swift es mucho más expresiva. Me pregunto si esto podría ser posible:

Veamos UIViewAutoresizing por ejemplo. Se define en Objective-C de la siguiente manera:

typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
    UIViewAutoresizingNone                 = 0,
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
    UIViewAutoresizingFlexibleWidth        = 1 << 1,
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
    UIViewAutoresizingFlexibleHeight       = 1 << 4,
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};

Puedo usarlo en Swift como una enumeración:

let foo = UIViewAutoresizing([.FlexibleHeight, .FlexibleTopMargin])

¿Es posible usar una instrucción switch en lugar de varias instrucciones if?

if foo & UIViewAutoresizing.FlexibleHeight != nil {

}

if foo & UIViewAutoresizing.FlexibleWidth != nil {

}

if foo & UIViewAutoresizing.FlexibleTopMargin != nil {

}

Algo así como este pseudocódigo:

switch foo { // ** THIS IS PSEUDO CODE AND WILL NOT COMPILE **

case & .FlexibleHeight:
    println("height")

case & .FlexibleWidth:
    println("width")

case & .FlexibleTop:
    println("top")

}

Respuestas a la pregunta(4)

Su respuesta a la pregunta