gpt4 book ai didi

ios - 等待响应 Alamofire swift

转载 作者:可可西里 更新时间:2023-11-01 00:22:37 25 4
gpt4 key购买 nike

在执行功能之前,我需要等待 response.response?.allHeaderFields 数据。我在网上搜索过,但不太明白如何向 alamofire 请求添加“完成处理程序”。或者是否有任何其他方法可以让函数等待。

@IBAction func comfirmation(sender: UIButton) {
if CodeTextField.text != "" {
print("in comfirmation function")
let comfirmationRequestData = [
"phone" : "\(appDelegate.savedNumber)",
"code" : "\(CodeTextField.text!)"
]
Alamofire.request(.POST,
"http://192.168.214.241:4000/login",
parameters: comfirmationRequestData,
encoding: .JSON).responseJSON {
response in
switch response.result {
case .Success:
let jsonDecrypted = JSON(response.result.value!)
print(jsonDecrypted)
let headerFile = response.response?.allHeaderFields as? [String:String]
print(headerFile)

case .Failure(let error):
print(error)
}
}
print("in comfirmation function. success")
appDelegate.defaults.setValue(appDelegate.savedNumber, forKey: "phoneNumber")
} else {
print("in comfirmation function. failed")
}

}

最佳答案

像这样使用 Alamofire

func postRequest( urlSuffix : String, params:[String : AnyObject]?, filterParams : [String]?, success: (response: AnyObject!) -> Void, failure: (error: NSError?) -> Void)
{
Alamofire.request(.POST, webServicesURLPrefix + urlSuffix, parameters: params, encoding: .JSON, headers: self.headers)
request?.responseJSON { response in
switch response.result
{
case .Success:
success(response: response.result.value)
case .Failure(let error):
failure(error: error)
}
}
}

从任何地方调用方法

self.postRequest("do-registration.php", params: params, filterParams: nil, success: { (response) -> Void in
self.afterResponse(response)
}) { (error) -> Void in
failure(error: error)
}

或者您可以编写一个单独的方法,您必须在完成后调用该方法。

func afterResponse(responseData : AnyObject)
{
print("Done")
print(responseData)
}

关于ios - 等待响应 Alamofire swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38052175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com