1牛郑、如何聲明一個(gè)Block
使用^操作符來來聲明一個(gè)block變量和指示block文本的開始裳仆。Block本身的主
體被{}包含著,如下面的例子那樣(通常使用 C 的;符合指示block的結(jié)束):
int multiplier = 7;
int (^myBlock)(int) = ^(int num) {
return num * multiplier;
};
該示例的解析如下圖:
2、如何使用一個(gè)Block
在很多情況下,你不需要聲明一個(gè)block變量;相反你可以簡(jiǎn)單的寫一個(gè)內(nèi)聯(lián)
(inline)的block文本,它需要作為一個(gè)參數(shù)使用芋类。以下的代碼使用block作為一個(gè)參數(shù)长踊。
[UIViewanimateWithDuration:0.5animations:^{
// some code
}];
3序仙、Block的優(yōu)點(diǎn)和缺點(diǎn)
優(yōu)點(diǎn):
(1)短小精悍梅鹦,書寫方便裆甩,相比delegate方便許多;
(2)可以異步處理其它邏輯齐唆;
缺點(diǎn):
(1)破壞了程序的結(jié)構(gòu),忽上忽下的冻河;
(2)調(diào)試無法單步跟進(jìn)去箍邮;
(3)使用不當(dāng)茉帅,容易導(dǎo)致循環(huán)引用。