当您需要在网络任务或操作的完成块中的主线程上执行某些操作时,以下哪种方式最合适?为什么
OperationQueue.main.addOperation
DispatchQueue.main.async
有关这两种队列之间差异的详细信息,请参见Lion的答案
这两种方法都会奏效。但是,当需要更高级的调度(包括依赖项、取消等)时,通常需要执行NSOperation
。所以在这种情况下,一个简单的
DispatchQueue.main.async{/*do work*/}
会很好的。这相当于
dispatch\u async(dispatch\u get\u main\u queue(),^{/*do work*/});
在Objective-C中,这也是我使用该语言的方式