Я запускаю выполнение задачи в главном контроллере представления как дочерний / черный поток.
class MainViewController: UIViewController {
let group = DispatchGroup()
override func viewDidLoad() {
super.viewDidLoad()
group.enter()
DispatchQueue.global(qos: .userInteractive).async {[unowned self] in
self.checkFolders()
sleep(50)
print("finished sleeping")
self.group.leave()
}
Я хочу, чтобы другой viewController блокировал, пока этот дочерний поток не завершит свою задачу.
class FirstTableViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
let startingPoint = Date()
MainViewController().group.wait()
print("\(startingPoint.timeIntervalSinceNow * -1) seconds elapsed")
dataCells = createArrayData() //create dataObjects
}
Однако, похоже, он не блокируется. Что я делаю неправильно?
Спасибо.