我在swift中使用AlamofireObjectMapper框架,如https://github.com/tristanhimmelman/AlamofireObjectMapper所述,我希望将“responseObject”与自定义类一起使用,但它不起作用:
代码:
let URL = "http://37.187.145.241:8080/MasterMarket/api/users-maxou/2"
Alamofire.request(.GET, URL, parameters: nil)
.responseObject { (response: User?, error: NSError?) in
println(response?.company?.nameCompany)
println(response?.lastNameUser)
}
我的自定义类用户:
class User : Mappable {
var idUser : Int?
var firstNameUser : String?
var lastNameUser : String?
var phoneNumberUser : String?
var parent : User?
var removeUser : Bool?
var managerRightsUser : Bool?
var company : Company?
var genderType : GenderType?
var userType : UserType?
var deposit : Deposit?
var createdUser : String?
var modifiedUser : String?
init() {}
required init?(_ map: Map) {
mapping(map)
}
func mapping(decoder: Map) {
idUser <- decoder["idUser"]
firstNameUser <- decoder["firstNameUser"]
lastNameUser <- decoder["lastNameUser"]
phoneNumberUser <- decoder["phoneNumberUser"]
removeUser <- decoder["removeUser"]
managerRightsUser <- decoder["managerRightsUser"]
parent <- decoder["parent"]
company <- decoder["company"]
}
和错误:
Cannot invoke 'responseObject' with an argument list of type '((User?, NSError?) -> _)'
答案 0 :(得分:2)
我遇到了同样的问题,实际上错误不是关于responseObject()方法而是request()方法。
解决方案是为请求方法指定我的parameters数组的类型(String)。你没有任何参数,可能添加:你的网址字符串?
答案 1 :(得分:0)
您需要将库更新到2.1版。 然后你可以使用:
Alamofire.request(.GET, URL, parameters: nil)
.responseObject({ (response: Response< User, NSError>) -> Void in
if response.result.isSuccess {
print(response.result.value)
}
})
祝你好运!