使用Alamofire和ObjectMapper的通用DataResponse

时间:2017-10-20 03:44:55

标签: swift generics alamofire objectmapper

我想为Alamofire创建一个自定义类,这样我就可以在各个类中反复调用请求。为了做到这一点,我需要传递扩展到DataResponse中的Mappable的模型类。但是我犯了很多错误。

这是我在自定义类中的当前代码:

func callAPI<T: Mappable>(response: T){
    Alamofire.request(url!, method: .post, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseObject { (response: DataResponse<T>) in
        let result = response.result.value as! BaseData

    }
}

当我调用方法时,这是我的代码:

func data() {
    let manager = ManagerData(url: url)
    manager.callAPI(response: Model.self)
}

这是我的Model类:

class Model: BaseData {
var point: String?
var list: [Voucher]?

override func mapping(map: Map) {
    super.mapping(map: map)

    totalPoint <- map["TOTAL_POINT"]
    list <- map["VOUCHER"]
}

}

class BaseData: Mappable {
var status: String?
var message: String?

required init() {

}

required init?(map: Map) {

}

func mapping(map: Map) {
    status <- map["STATUS"]
    message <- map["MESSAGE"]
}

}

manager.callAPI(response: Model.self)错误为Argument type Model.Type does not conform to expected type Mappable

有任何建议怎么做?

0 个答案:

没有答案