我将信息存储在plist文件中,然后将其放入字典中。

我有一堂课,设置了一些枚举,如下所示:

enum componentPostion {
    case upperLeft, UpperRight, lowerLeft, lowerRight
}


我声明了一个类型为componentPostion的var

var isPosition: componentPostion


然后我可以根据字典中的值设置枚举,而不必编写带有switch语句等的函数吗?

isPosition = componentInfo["Type"] as componentPostion

最佳答案

您可以通过从要保留的类型继承枚举来使用原始值,在这种情况下,我假设它是字符串:

enum componentPostion : String{
    case upperLeft = "upperLeft"
    case upperRight = "upperRight"
    case lowerLeft = "lowerLeft"
    case lowerRight = "lowerRight"
}


然后,您可以使用fromRaw()获得枚举大小写:

let isPosition = componentPostion.fromRaw("upperLeft")


toRaw()获得其字符串表示形式

isPosition.toRaw()


请注意,如果参数与为枚举定义的任何原始值都不匹配,则fromRaw()返回一个可选值

建议阅读:Raw Values

10-07 20:59