Swift在struct中创建枚举

时间:2017-08-11 06:50:35

标签: swift

我想在我的struct中创建枚举。我试过了:

struct ProfileTextfieldItem {

    var txtfPlaceholder: String
    var bottomTxt: String
    var modelType : Int

    enum modelType {
        case phone
        case skype
    }
}

然后我做了:

let tesEnum = ProfileTextfieldItem(txtfPlaceholder: "o.ivanova", bottomTxt: "Логин Skype", enumType: phone)

然而,编译器并没有让我跑,它说 - 使用未解析的标识符 - 电话。

2 个答案:

答案 0 :(得分:2)

而不是这个,这是你应该做的:

struct ProfileTextfieldItem {

    var txtfPlaceholder: String
    var bottomTxt: String
    var modelType: ModelType

    enum ModelType {
        case phone
        case skype
    }
}

在Swift中,enum是类型,它们可以像class es和struct一样使用。要创建一个这样的实例,请执行:

let tesEnum = ProfileTextfieldItem(txtfPlaceholder: "o.ivanova", bottomTxt: "Логин Skype", modelType: .phone)

请注意,第三个参数前面有.,称为modelType,而不是enumType

答案 1 :(得分:1)

您应该像这样定义结构:

struct ProfileTextfieldItem {

    var txtfPlaceholder: String
    var bottomTxt: String
    var modelType : ModelType

    enum ModelType {
        case phone
        case skype
    }
}

并初始化var tesEnum,如下所示:

let tesEnum = ProfileTextfieldItem(txtfPlaceholder: "o.ivanova", bottomTxt: "Логин Skype", modelType: .phone)