我已升级到Xcode 7,并且使用Alamofire来管理API调用,但出现此错误:
‘闭包参数列表的上下文类型需要1个参数,但指定了4个参数’
对于以下代码:
static func loginWithEmail(email: String, password: String, response: (token: String?) -> ()) { let urlString = baseURL + ResourcePath.login.description let parameters = [ "email": email, "password": password ] Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { (_, _, data, _) -> Void in let json = JSON(data!) let token = json["token"].string response(token: token) } }
错误是指以下行:
Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { (_, _, data, _) -> Void in
我是Swift闭包的新手,不知道是否必须嵌套值才能使其有效。
非常感谢您的帮助。
该闭包采用类型为Response 的单个参数,因此您的代码应更像这样。
Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { response in let json = JSON(response.data!) let token = json["token"].string response(token: token) }