如何在make实例中为变量设置一个数字?

时间:2018-05-09 06:40:51

标签: ios swift

我知道您可以将变量设置为String对象,如下所示。

var str = String("I bought \(num) CDs")

然后我可以设置这样的数字吗?

之前

var stageViewController: StageBaseViewController?

switch stage {

    case 1:
        stageViewController = Stage01Controller()
    case 2:
        stageViewController = Stage02Controller()
    case 3:
        stageViewController = Stage03Controller()
    case 4:
        stageViewController = Stage04Controller()
    case 5:
        stageViewController = Stage05Controller()
    //...

}

后的

stageViewController = Stage\(stage)Controller()

2 个答案:

答案 0 :(得分:4)

您可以将生成VC的所有函数存储在一个数组中,并使用索引来访问它们:

let myVCs: [() -> UIViewController] = [
    Stage01Controller.init,
    Stage02Controller.init,
    Stage03Controller.init,
    Stage04Controller.init,
    Stage05Controller.init,
]

然后使用stage,我们可以

let stageController = myVCs[stage]()

但是,您是否考虑过其他任何方式?有5个阶段控制器看起来像代码气味。也许你可以创建一个StageController并将有关特定阶段的数据传递给它?然后你可以编写如何在StageController

中显示数据的逻辑

答案 1 :(得分:-1)

不幸的是,这不能在Swift中完成,因为\()只能在String中使用。