ios - 从 NSDictionary Swift 设置枚举

标签 ios xcode types swift enums

我将信息存储在一个 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/

相关文章:

ios - 向 Nib 启动的 View 添加边框和阴影

ios - RefreshControl 在其中一个选项卡中不起作用,其代码在其他选项卡中以类似方式使用

scala - Scala 的 Netbeans 类型信息

c# - 访问内部类型

c - 长整数问题

ios - 如何从项目类中获取项目

ios - 具有默认参数的 swift 函数也是一个选择器?

ios - Alamofire 构建失败 : issues in Manager. swift、Request.swift 和 ResponseSerialization.swift

ios - 如何正确配置添加到现有 TableView Controller 的搜索栏?

ios - NSURLSessionUploadTask "finishes"但没有网络流量