我正在使用AlamofireObjectMapper将json响应解析为我的对象。 AlamofireObjectMapper是ObjectMapper的扩展。
根据他们的文档,我的模型类必须符合Mappable
协议。例如:
class Forecast: Mappable {
var day: String?
var temperature: Int?
var conditions: String?
required init?(_ map: Map){
}
func mapping(map: Map) {
day <- map["day"]
temperature <- map["temperature"]
conditions <- map["conditions"]
}
}
为了符合可映射协议,我的模型类必须实现所需的初始化程序和每个字段的映射函数。这是有道理的。但是,它如何支持结构类型?例如,我有一个Coordinate结构,我尝试符合Mappable协议:struct Coordinate: Mappable {
var xPos: Int
var yPos: Int
// ERROR: 'required' initializer in non-class type
required init?(_ map: Map) {}
func mapping(map: Map) {
xPos <- map["xPos"]
yPos <- map["yPos"]
}
}
由于我展示的错误,我无法使我的Coordinate
符合可映射性。
(我认为使用struct
来处理坐标数据而不是使用class
是非常常见的)
我的问题:
Q1. AlamofireObjectMapper或ObjectMapper库是否支持struct
类型?如何将它们用于解析json响应到struct
类型的对象中?
Q2. 如果这些库不支持将json响应解析为结构体类型的对象。 iOS中用Swift2实现此操作的方法是什么?