刚才看到一个博客
讲了开源的应用Swiflytics
制作的一些内容,其中对于dispatch_async
的处理很漂亮,原本我们肯定这样写
1 | dispatch_async(dispatch_get_main_queue(), { _ in |
作者通过写接一个closure
的函数实现了像代码块儿一样的优雅调用
1 | func onMainThread(closure: () -> ()) { |
因为swift里面最后一个参数如果是closure
的话可以直接通过大括号包裹起来这么写所以使上面的写法成为可能
顺便说下完整调用应该是这样的
1 | onMainThread(closure: { () -> () in |
但是因为swift编译器很聪明
所以可以省略成这样子。
在知道了这些以后,
1 | func onBackgroundThred(closure: () -> ()) { |
嗯,确实漂亮好多