我现在有一个功能:
func getJSONDataDictionary (accessToken: String, response: Mappable, url: String) {
let headers = [
"Cache-Control": "no-cache",
"Authorization": "bearer \(accessToken)"
]
Alamofire.request(.GET, url, encoding: .JSON, headers: headers)
.responseObject{ (response: Response<response, NSError>) in
let JSONDict = response.result.value
}
}
我想为响应参数传入一个类型为Mappable的类(该类用于标识类是否符合ObjectMapper协议)。按照现在的代码方式,我得到一个错误“response is not a type”。有什么我可以做的函数,所以它需要一个可映射的参数?
最佳答案
错误消息指出您的参数结果不是类型,它不是。可映射是一个协议。
我建议您将函数设为泛型,如下所示:
func getJSONDataDictionary< T: Mappable>(accessToken: String, response: T, url: String) {
let headers = [
"Cache-Control": "no-cache",
"Authorization": "bearer \(accessToken)"
]
Alamofire.request(.GET, url, encoding: .JSON, headers: headers)
.responseObject{ (response: Response<response, NSError>) in
let JSONDict = response.result.value
}
}
泛型类型T将被约束到可映射协议。
关于ios - AlamoFire + ObjectMapper,如何让函数接受可映射类型的参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37715688/