如何使用 ObjectMapper 将枚举的 rawValue 分配给变量?
Posted
技术标签:
【中文标题】如何使用 ObjectMapper 将枚举的 rawValue 分配给变量?【英文标题】:How to assign rawValue of enum to variable with ObjectMapper? 【发布时间】:2016-04-09 08:13:57 【问题描述】:您好,我在 Swift 中使用 Object Mapper 和 Alamofire,我正在尝试将枚举原始值映射到真正的枚举。
这是我的枚举以及我试图在函数映射中使用的代码。你能帮我把什么作为参数传递给 EnumTransform 或如何修改代码吗?我知道我可以将值读取为字符串并使用 LevelType(rawValue: stringValue)。
提前致谢。
enum LevelType : String
case NEW = "NEW"
case UPDATE = "UPDATE"
func mapping(map: Map)
typeEnum <- (map[“type”], EnumTransformable(???) )
【问题讨论】:
不需要写case NEW = "NEW"。 “NEW”将是默认值(与案例名称相同)。 enum LevelType : String case NEW,UPDATE 将是相同的 【参考方案1】:只要我的枚举被声明为 String 类型,只需做一个直接映射就可以了。
typeEnum <- map["type"]
【讨论】:
【参考方案2】:您根本不必传递参数。您所要做的就是将枚举类型指定为泛型参数,ObjectMapper 将负责所有枚举初始化过程。
typeEnum <- (map["type"],EnumTransform<LevelType>())
【讨论】:
我按照这里的建议做了同样的事情,但我收到错误消息 -- Binary operator ()) 需要声明枚举类型,var typeEnum: LevelType!以上是关于如何使用 ObjectMapper 将枚举的 rawValue 分配给变量?的主要内容,如果未能解决你的问题,请参考以下文章
使用 ObjectMapper - 如何将 JSON 结果快速转换为 TableView
Swift:如何将带有 Alamofilre 或 SwiftyJSON 的 JSON 字符串转换为 ObjectMapper?
Jackson ObjectMapper 如何将 byte[] 传输到 String 以及如何在没有对象类的情况下翻译它?