gpt4 book ai didi

ios - 在 swift 2.0 中完成另一个调用后运行 API 调用

转载 作者:行者123 更新时间:2023-11-29 01:37:56 24 4
gpt4 key购买 nike

我遇到这个问题,我的应用程序需要为一些配置值进行 api 调用,然后在调用完成后进行实际调用。在我修复调用的方法中,我尝试使用调度方法但没有成功。这里有人可能对如何解决这个问题有明确的解决方案吗?因为现在我因此而一直得到一个零值..

func requestObj(url: Routes, params: Dictionary<String, String>?)
{
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
self.requestConfig() // request a valid config before doing anything
dispatch_async(dispatch_get_main_queue(), {
if let req = NSMutableURLRequest(urlString: self.config!.api!.baseUrl! + url.rawValue) {
do {
req.addValue(String(self.config!.api!.token!), forHTTPHeaderField: "Token")
req.addValue(self.sessionID, forHTTPHeaderField: "SessionID")
let opt = HTTP(req)
opt.start { response in
if let err = response.error {
print("error: \(err.localizedDescription)")
return
}
print("opt finished: \(response.description)")
//print("data is: \(response.data)") access the response of the data with response.data
}

}
}
})
}
}

最佳答案

将带有闭包的完成处理程序添加到 requestConfig 方法中,然后在该完成处理程序中执行操作。

类似的事情,使完成处理程序可选:

func requestConfig(completionHandler completionHandler: (()->())?) {
// do something and then
completionHandler?()
}

func requestObj(url: Routes, params: Dictionary<String, String>?) {
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
self.requestConfig(completionHandler: { () -> () in
dispatch_async(dispatch_get_main_queue(), {
if let req = NSMutableURLRequest(urlString: self.config!.api!.baseUrl! + url.rawValue) {
do {
req.addValue(String(self.config!.api!.token!), forHTTPHeaderField: "Token")
req.addValue(self.sessionID, forHTTPHeaderField: "SessionID")
let opt = HTTP(req)
opt.start { response in
if let err = response.error {
print("error: \(err.localizedDescription)")
return
}
print("opt finished: \(response.description)")
//print("data is: \(response.data)") access the response of the data with response.data
}

}
}
})

})
}
}

关于ios - 在 swift 2.0 中完成另一个调用后运行 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32757644/

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