繁体   English   中英

iOS Swift:对象映射器条件映射

[英]iOS Swift :Object mapper conditional mapping

我是swift的新手,使用对象映射器进行映射,如果消息键是json或string中的数组,则如何映射它总是返回string? 杰森回应

{“错误”:{“代码”:404,“消息”:“消息”}}

{“ error”:{“ code”:406,“ messages”:[“ message”]}}

我的课

class Response : NSObject, Mappable {

    var code : Int?
    var data : AnyObject?
    var message : [String]?


    required init?(map: Map) {

    }

    func mapping(map: Map) {
        code <- map["code"]
        data <- map["data"]
        message <- map["messages"]
    }
}

您可以为这样的转换创建自定义转换。

创建一个符合TransformType协议的类:

class ErrorMessagesTransform: TransformType {
    func transformFromJSON(_ value: Any?) -> Array<String>? {
        if let value = value as? String {
            return [value]
        }
        if let value = value as? [String] {
            return value
        }
        return []
    }

    func transformToJSON(_ value: Array<String>?) -> String? {
        // TODO: If needed
        return nil
    }
}

然后在映射函数中执行以下操作:

func mapping(map: Map) {
    code <- map["code"]
    data <- map["data"]
    message <- (map["messages"], ErrorMessagesTransform())
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM