我将信息存储在一个 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
关于ios - 从 NSDictionary Swift 设置枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26337835/