【问题标题】:How to assign rawValue of enum to variable with ObjectMapper?如何使用 ObjectMapper 将枚举的 rawValue 分配给变量?
【发布时间】: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} 将是相同的

标签: swift alamofire objectmapper


【解决方案1】:

只要我的枚举被声明为 String 类型,只需做一个直接映射就可以了。

typeEnum <- map["type"]

【讨论】:

    【解决方案2】:

    您根本不必传递参数。您所要做的就是将枚举类型指定为泛型参数,ObjectMapper 将负责所有枚举初始化过程。

     typeEnum <- (map["type"],EnumTransform<LevelType>())
    

    【讨论】:

    • 我按照这里的建议做了同样的事情,但我收到错误消息 -- Binary operator ())
    • 需要声明枚举类型,var typeEnum: LevelType!
    猜你喜欢
    • 2014-09-20
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    相关资源
    最近更新 更多