我需要发出网络请求,我需要同步,因为我的程序必须在登录网络服务器后继续,或者下载数据。
首先,我在viewDidLoad中登录:
override func viewDidLoad() {
super.viewDidLoad()
print(NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true).last! as String)
self.waitView.startAnimating()
self.waitView.hidesWhenStopped = true
let group = DispatchGroup()
print("before")
group.enter()
OdooAuth.init(successBlock: { (success) in
print(success)
group.leave()
self.waitView.stopAnimating()
}) { (erro) in
group.leave()
self.waitView.stopAnimating()
print(erro)
}
}
print("before wait")
group.wait()
print("after wait")
}
然而,这不起作用。代码保持锁定状态。我确实认为,当我致电group.leave()
时,代码会继续group.wait()
以下。但这不会发生,我不知道采用哪种方式。