AlamofireObjectMapper无法使用类型'((User?,NSError?) - > _)'的参数列表调用'responseObject'

时间:2015-07-16 09:01:50

标签: swift alamofire

我在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?) -> _)'

2 个答案:

答案 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)
            }
        })
祝你好运!