Переключить оператор для импортированных NS_OPTIONS (RawOptionSetType) в Swift?

Оператор switch в Swift гораздо более выразителен. Мне интересно, возможно ли это:

Давайте посмотрим на UIViewAutoresizing, например. Это определено в Objective-C следующим образом:

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
};

Я могу использовать его в Swift как enum:

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

Можно ли использовать оператор switch вместо нескольких операторов if?

if foo & UIViewAutoresizing.FlexibleHeight != nil {

}

if foo & UIViewAutoresizing.FlexibleWidth != nil {

}

if foo & UIViewAutoresizing.FlexibleTopMargin != nil {

}

Примерно такой псевдокод:

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

case & .FlexibleHeight:
    println("height")

case & .FlexibleWidth:
    println("width")

case & .FlexibleTop:
    println("top")

}

Ответы на вопрос(4)

Ваш ответ на вопрос