ps:本文針對(duì)初學(xué)者
block對(duì)于初學(xué)者,會(huì)覺(jué)得block比較復(fù)雜,很難理解. 尤其是在作為參數(shù)的時(shí)候. 一般在實(shí)際使用的時(shí)候我們常用block的兩種方式, 一種是 作為 "成員變量", 另一種是作為參數(shù)(初學(xué)者比較難理解的); 筆者會(huì)用一些比較簡(jiǎn)單的方式進(jìn)行講解
初學(xué)者如果不熟悉的話,可以使用inline(ps:最好完全手打,不要用),
inline.png
===1.作為成員變量使用(就像普通變量)===
一般就是初始化,賦值,然后調(diào)用. 就像使用普通的變量一樣,這里不做說(shuō)明
void(^blk)(int)/*聲明*/ = ^(int a)/*賦值,a為形參*/ {
NSLog(@"%d",a);
};
blk(2);/*調(diào)用*/
===2.作為參數(shù)使用===
作為參數(shù)使用只要記住 傳遞實(shí)參的時(shí)候, 相當(dāng)于對(duì)block 進(jìn)行賦值, 剩下的就好理解了
- (void)viewDidLoad {
[super viewDidLoad];
//這里是調(diào)用 didBlock: 方法
[self didBlock:^(int a) {
NSLog(@"%d",a); /*調(diào)用方法時(shí), 這里實(shí)參傳遞(就相當(dāng)于賦值)*/
}];
}
/**
* 方法
*
* @param blk1 參數(shù)名
*/
- (void)didBlock:(void(^)(int))blk1 /*聲明*/{
blk1(2);/*調(diào)用*/
}