调度组等待超时
Dispatch Group wait till Timeout
我使用以下函数从 api 中获取数据,但是我正在努力做的是在设置的时间用完时使该函数超时。
我的objective:
-我想让下面的代码等待一段时间,例如10 秒,如果 10 秒过去了,我希望它继续执行其他功能并工作,即不要继续等待。为此,我正在使用 dispatchgroup wait 方法。但是它没有按预期工作。我该如何调整以下内容来实现?
class ViewController: UIViewController {
var myArr = [testing]()
let dispatchGROUP=DispatchGroup()
. . .}
@objc func warmUp(url: String, u: String, p: String){
let waitResult = dispatchGROUP.wait(timeout: .now() + 10)
AF.request(url, method: .get)
.authenticate(username: u, password: p)
.response { [weak self] response in
guard let safeData = response.data else {self?.sArr.append("0")/*; self?.warm.leave()*/; print("0 sent"); print(url,u,p); return}
let xml = XML.parse(safeData)
let sid = xml.Response.SID.text ?? ""
print(sid)
self?.sArr.append(sid)
// self?.dispatchGROUP.leave()
if waitResult == .success{
print("success")
self?.dispatchGROUP.leave()
}else if waitResult == .timedOut{
print("fail")
self?.dispatchGROUP.leave()
return
}
}
}
whosebug.com/a/61192412/1801544请设置超时时间,我相信这就是你想要的
我使用以下函数从 api 中获取数据,但是我正在努力做的是在设置的时间用完时使该函数超时。
我的objective:
-我想让下面的代码等待一段时间,例如10 秒,如果 10 秒过去了,我希望它继续执行其他功能并工作,即不要继续等待。为此,我正在使用 dispatchgroup wait 方法。但是它没有按预期工作。我该如何调整以下内容来实现?
class ViewController: UIViewController {
var myArr = [testing]()
let dispatchGROUP=DispatchGroup()
. . .}
@objc func warmUp(url: String, u: String, p: String){
let waitResult = dispatchGROUP.wait(timeout: .now() + 10)
AF.request(url, method: .get)
.authenticate(username: u, password: p)
.response { [weak self] response in
guard let safeData = response.data else {self?.sArr.append("0")/*; self?.warm.leave()*/; print("0 sent"); print(url,u,p); return}
let xml = XML.parse(safeData)
let sid = xml.Response.SID.text ?? ""
print(sid)
self?.sArr.append(sid)
// self?.dispatchGROUP.leave()
if waitResult == .success{
print("success")
self?.dispatchGROUP.leave()
}else if waitResult == .timedOut{
print("fail")
self?.dispatchGROUP.leave()
return
}
}
}
whosebug.com/a/61192412/1801544请设置超时时间,我相信这就是你想要的