gpt4 book ai didi

swift - 取消所有来自 Alamofire 的网络服务调用

转载 作者:IT王子 更新时间:2023-10-29 05:34:40 25 4
gpt4 key购买 nike

在我的项目中有 4 个 Web 服务在后台运行。我想在不等待响应的情况下从当前状态注销时停止所有这些服务。我找到了这样做的代码

Alamofire.Manager.sharedInstance.session.invalidateAndCancel()

但是在调用这个之后,我无法再次调用服务电话。有什么办法可以取消所有正在运行的请求吗?

这是我的服务调用代码

func getAllCount(parameters: [String: AnyObject],completion: (success : Bool) -> Void) {

PKHUD.sharedHUD.contentView = PKHUDTextView(text: "Loading...")
PKHUD.sharedHUD.show()
request = Alamofire.request(.POST, GlobalConstants.KGetAllCount, parameters: parameters, encoding:.JSON).responseJSON
{
response in switch response.result {
case .Success(let JSON):
PKHUD.sharedHUD.hide()
print("Success with JSON: \(JSON)")
let status : NSString = JSON.valueForKey("status") as! String
if(status .isEqualToString("1")){
MyViewState.QJoined = JSON.valueForKeyPath("data.TotalJoinQueue") as! String
MyViewState.Qstarted = JSON.valueForKeyPath("data.TotalCreatedQueue") as! String
MyViewState.Bumps = JSON.valueForKeyPath("data.TotalBump") as! String
completion(success: true)

break
}else{
completion(success: false)
Helper.globalAlert(JSON.valueForKey("data") as! String)
break
}
case .Failure(let error):
PKHUD.sharedHUD.hide()
print("Request failed with error: \(error)")
completion(success: false)
break

}
}
}

最佳答案

据我所知,没有明显/简单的方法来重新创建 session 。处理这个问题的建议方法是保留请求数组 static var requests = [Alamofire.Request?]() 然后当你想停止所有你可以调用的请求时使用 request .取消()。使用这种方法,您必须在创建请求后附加每个请求。

class func stopAllRequests(){
for request in MyClass.requests{
if let request = request{
request.cancel()
}
}
}

Similar Issue

关于swift - 取消所有来自 Alamofire 的网络服务调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34505449/

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