I manage to use below work around.

let count = 1


switch count {

case 0, 1:

    let buttonId = NSAlertThirdButtonReturn

    let shouldFallthrough = { () -> Bool in

        switch buttonId {

        case NSAlertFirstButtonReturn:

            print("do something")

        case NSAlertSecondButtonReturn:

            print("do something")

        case NSAlertThirdButtonReturn:

            print("do something")

            return true

        default:

            fatalError()

        }



        return false

    }()

    if shouldFallthrough { fallthrough }

default:

    print("do extra things")

}

Zhaoxin


On Sat, Oct 15, 2016 at 10:44 AM, Zhao Xin <owe...@gmail.com> wrote:

> I thought below code would work. It didn't.
>
> let count = 1
>
>
> outerSwitch: switch count {
>
> case 0, 1:
>
>     let buttonId = 0
>
>     switch  buttonId {
>
>     case NSAlertFirstButtonReturn:
>
>         print("do something")
>
>     case NSAlertSecondButtonReturn:
>
>         print("do something")
>
>     case NSAlertThirdButtonReturn:
>
>         print("do something")
>
>         fallthrough outerSwitch // error here
>
>     default:
>
>         fatalError()
>
>     }
>
> default:
>
>     print("do extra things")
>
> }
>
> So I have to use `if - else if - else` instead. I think if `fallthrouh`
> works with `label`, the code will be more elegant.
>
> Zhaoxin
>
>
>
>
>
>
>
>
>
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to