iOS背景线程类

时间:2017-05-31 22:19:37

标签: ios swift multithreading

有没有办法在特定线程上调度某个类的每个方法? 我想在后台线程上异步运行某个类的每个方法而不添加

DispatchQueue.global(qos: .background).async {
// code
}

到每个方法。我应该覆盖哪种NSObject方法?

1 个答案:

答案 0 :(得分:2)

这听起来没必要(也许是一个坏主意)。如果它是可能的(它可能不是)它意味着每个方法都需要一个完成块才能返回任何东西,甚至私有函数。

更好的方法是将大多数方法设为私有,并将一些公共方法作为向量调用异步的类。

如果你想避免所有的语法,你可以这样做:

let BA = { (block: @escaping () -> ()) in
        DispatchQueue.global(qos: .background).async(execute: block)
    }

BA {
    // do whatever
}

如果你想为你可以做的整个功能做到这一点:

func doSomething() { BA {

}}