//block塊(數(shù)據(jù)類型):封裝了?段具有特定功能的代碼段
///函數(shù)有函數(shù)名去扣,block是沒有名字的柱衔,也可以叫做匿名函數(shù);函數(shù)不能做參數(shù)傳遞愉棱,block可以作為
參數(shù)傳遞
//形式:
//調(diào)?
// block變量名(參數(shù)列表)
//diyBlock是給int(^)(int a,int b)這種block類型定義的?個新名字,以后我們使?diyBlock就表示
int(^)(int a,int b)這個類型
typedef int(^diyBlock)(int a,int b);
int main(int argc, const char * argv[]) {
@autoreleasepool {
diyBlock addBlock = ^(int a,int b){
return a+b;
};
diyBlock jianblock = ^(int a,int b){
return a-b;
};
/*
返回值類型 (^block變量名)(參數(shù)列表) = ^(參數(shù)列表){
代碼段
return(如果返回值類型不是void就必須將返回值return出去)
}
*/
}
return 0;
}
// ?參?返
void demo0(){
// ?參?返的block(寫?個block唆铐,?for循環(huán)打印三句hello World)
// 定義?個block
void (^myBlock)() = ^(){
for (int i = 0; i <= 2; i++) {
NSLog(@"Hello World");
}
};
// 調(diào)??個block
myBlock();
}
//這是?個有參?返的block
/*
void (^block名)(參數(shù)列表) = ^(參數(shù)列表){}
*/
void demo2(){
// 定義?個block,?for循環(huán)打印n次hello World奔滑,n?鍵盤輸?
void (^nBlock)(int n) = ^(int n){
for (int i = 0; i