gpt4 book ai didi

iOS swift :Object mapper conditional mapping

转载 作者:行者123 更新时间:2023-11-30 12:38:38 32 4
gpt4 key购买 nike

我是 swift 的新手,使用对象映射器进行映射,如果消息键是 json 或字符串中的数组,我如何映射它总是返回字符串。Json 响应

{ "error": { "code": 404, "messages": "message" } }

{ "error": { "code": 406, "messages": [ "message" ] } }

我的类(class)

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 协议(protocol)的类:

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())
}

关于iOS swift :Object mapper conditional mapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42548359/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com