枚举案例的Swift类型

Cla*_*lis 3 syntax enums ios type-alias swift

好吧,我已完成了我的作业并阅读了我能找到的内容,但我似乎无法找到是否可以用Swift完成.我有一个我在整个地方使用的枚举:SomeEnum如果它case是一个冗长SomeEnum.SomeLengthyCaseName而我厌倦了在我的代码中看到它.我不想重构,因为我喜欢新手维护我的代码的情况的描述性.

所以这就是问题:是否有可能创建一个typealiasfor SomeEnum.SomeLengthyCaseName?如果是这样,怎么样?这是我尝试过的:

enum SomeEnum {
    case SomeLengthyCaseName
}

typealias SLCN = SomeEnum.SomeLengthyCaseName
Run Code Online (Sandbox Code Playgroud)

这是语法,但Xcode给出了一个编译错误,说" SomeLenghtyCaseName不是它的成员" SomeEnum.

预备,准备,开始!

jtb*_*des 9

这是一个误导性的错误信息.

真正的问题是,SomeLengthyCaseName不是一个类型.因此,您不能使用typealias,这仅适用于类型的别名.(例如,你可以说typealias SE = SomeEnum.)

相反,您可以使用全局常量:

let SLCN = SomeEnum.SomeLengthyCaseName
Run Code Online (Sandbox Code Playgroud)

或者,更好的是,enum本身的静态常量:

enum SomeEnum {
    case SomeLengthyCaseName
    static let SLCN = SomeEnum.SomeLengthyCaseName
}

let x: SomeEnum = .SLCN
Run Code Online (Sandbox Code Playgroud)