swift3 - 用背景数据更新ui

Bob*_*obC 3 swift3

使用后台线程中的数据进行UI更新时遇到困难.我阅读了大量的文档,但仍然遗漏了一些东西......

func getData(){
    DispatchQueue.global(qos: .background).async {
        let token = GetTokenOperation()

        token.success = { item in
            print("Success")
        }

        token.failure = {error in
            print(error.localizedDescription)
        }

        NetworkQueue.shared.addOperation(op: token)

        DispatchQueue.main.async {
            // qos' default value is ´DispatchQoS.QoSClass.default`
            self.updateUI()
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

self.updateUI()在打印"成功"之前执行.当我把self.updateUI()放在闭包token.success中时,它确实崩溃了.

OOP*_*Per 7

你试过这个吗?

    token.success = { item in
        print("Success")
        DispatchQueue.main.async {
            self.updateUI()
        }
    }
Run Code Online (Sandbox Code Playgroud)