Использование DispatchGroup для связи между двумя различными классами? - PullRequest
0 голосов
/ 01 сентября 2018

Я запускаю выполнение задачи в главном контроллере представления как дочерний / черный поток.

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





}

Однако, похоже, он не блокируется. Что я делаю неправильно? Спасибо.

...