[绘画]4B笔

[绘画]四岁了

[绘画]对战

[文章]如何用swift写GCD

一般只需要这样写就可以

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
            //需要长时间处理的代码
            dispatch_async(dispatch_get_main_queue(), {
                //需要主线程执行的代码
            })
})

如果运行一系列的任务,希望当任务全部结束后运行另一个特殊的任务这种场景就是用下面的写法

let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
let group = dispatch_group_create()
for(id obj in array)  
    dispatch_group_async(group, queue, {    
        self.doWork(obj)
    })  
dispatch_group_notify(group, queue, {  
    self.doneWork  
})
dispatch_release(group)

如果嫌swift还不够简洁也可以使用duemunk写的GCD语法糖Async,项目github地址:https://github.com/duemunk/Async

语法看起来是这样

Async.background {
    println("This is run on the background queue")
}.main {
    println("This is run on the main queue, after the previous block")
}

支持的方法

Async.main {}
Async.userInteractive {}
Async.userInitiated {}
Async.default_ {}
Async.utility {}
Async.background {}

多少个blocks的chain都可以

Async.userInitiated {
    // 1
}.main {
    // 2
}.background {
    // 3
}.main {
    // 4
}

[文章]使用Flipboard的FLEX进行iOS程序调试

FLEX不需要复杂的配置,调试模式的操作也很方便简单,项目的地址是:https://github.com/Flipboard/FLEX

先在项目的Podfile里添加

pod 'FLEX'

然后import

#if DEBUG
#import "FLEXManager.h"
#endif

最后在希望开启的地方加上

#if DEBUG
    [[FLEXManager sharedManager] showExplorer]; //开启flex的调试模式
#endif

我现在用的最多的就是使用global查看沙盒文件,用select和move调整位置布局。当然我觉得把这个调试工具加到其他人的项目来跟踪学习调试是最合适的了。