如何在swift 2中将switch case与UIViewController作为输入进行比较

Bha*_*n_m 0 iphone ios swift swift2

我在 swift 中有一些旧版本的代码,如下所示

let initVc:UIViewController? = self.initViewController!
        switch initVc {
            case let vc as ProductListViewController:
                pageMenu?.moveToPage(0)
            case let vc as OrderListViewController:
                pageMenu?.moveToPage(1)
            case let vc as CustomerListViewController:
                pageMenu?.moveToPage(2)
            default:
                pageMenu?.moveToPage(0)
        }
Run Code Online (Sandbox Code Playgroud)

上面的代码self.initViewController是父视图控制器,从那里推送这个控制器。

更新到 swift 2.0 后出现错误,如下所示

Immutable value 'vc' was never used; consider replacing with '_' or removing it
Run Code Online (Sandbox Code Playgroud)

请提出满足此要求所需的更改。

Mar*_*n R 7

不为(未使用的)变量赋值的等效代码是:

switch initVc {
    case is ProductListViewController:
        pageMenu?.moveToPage(0)
    case is OrderListViewController:
        pageMenu?.moveToPage(1)
    case is CustomerListViewController:
        pageMenu?.moveToPage(2)
    default:
        pageMenu?.moveToPage(0)
}
Run Code Online (Sandbox Code Playgroud)

使用“类型转换模式” is <Type>