Alamofire 4、Swift 3:无法返回 StatusCode
Posted
技术标签:
【中文标题】Alamofire 4、Swift 3:无法返回 StatusCode【英文标题】:Alamofire 4, Swift 3: Can not return StatusCode 【发布时间】:2017-02-15 15:02:13 【问题描述】:这会报错:“转义闭包只能捕获 inout ...”
我该如何解决?
func check_info(tag: String, info: String, code: inout Int)
Alamofire.request(
URL + "/api/test_information/",
method: .post,
parameters: [tag: info],
encoding: JSONEncoding.default
).responseString response in
code = (response.response?.statusCode)!
【问题讨论】:
【参考方案1】:已编辑:如果要返回状态码,请使用此回调函数。收到响应后,回调会立即返回状态码。
func check_info(tag: String, info: String, statusCode: @escaping (String)->Void)
Alamofire.request(URL + "/api/test_information/", method: .post, parameters: [tag: info], encoding: JSONEncoding.default).responseJSON response in
statusCode((response.response?.statusCode)!)
要调用它,请使用:
check_info(tag: "yourtag", info: "yourInfo)
statusCode in
print(statusCode)
【讨论】:
感谢您的回答!但是我需要在另一个函数中使用这个值 @MarkYankovsky 现在检查,使用这个回调函数应该可以工作。自己没测试过,但我就是这样用的 谢谢,但是我怎么称呼这个函数呢?我从未使用过@escaping? @MarkYankovsky 抱歉,我完全忘记了那部分。刚刚编辑了我的答案。您可以使用一种完成块来捕获转义值。当 Alamofire 请求完成时,将调用该完成块。以上是关于Alamofire 4、Swift 3:无法返回 StatusCode的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 3 中使用 Alamofire 4 解析这个 json?
无法在 Alamofire 中禁用缓存(Xcode 9 - swift 4)