块与大中枢派发 GCD

2015-11-29  本文已影响176人  迪亚波罗
                                                块与大中枢派发

第 37 条:理解“块”这一概念
void (^somBlock)() = ^ {
// Block implementation here
}

int (^addBlock)(int a, int b) = ^(int a, int b) {
return a + b;
};

int add = addBlock(2, 5); //< add = 7
块的强大之处是:在声明它的范围里,所有变量都可以为其所捕获。这就是说,那个范围里的全部变量,在块里依然可用。

把任务放在主线程上执行,也可以有下面两种方式,而我们还是应该优选后者:
// Using performSelectorOnMainThread:withObject:waitUntilDone:
//Using dispatch_async
//(or if waitUntilDone is YES, then dispatch_sync)
dispatch_async(dispatch_get_main_queue(), ^{
[self doSomething];
});

上一篇 下一篇

猜你喜欢

热点阅读