------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一 Block的基本概念
Block可以被用来写一些可以传到API中的函数语句,可选择性地存储,并可以使用多线程。 作为一个回调,Block特别的有用,因为block既包含了回调期间的代码,又包含了执行期间需要的数据。
由于无论OC语言或是C++语言,都是衍生自C语言的,所以block当初被设计时,就可以同时兼容以上全部三种语言。
1)最简单的格式
定义格式:
void (^block)() = ^{代码块}
使用格式:
block();
例如:void(^myblock)()= ^{
NSLog(@"hello world");
}
//执行时,把block当成函数
myblock();
2)有参数的定义和使用
定义格式:
void (^block)(参数列表) = ^(参数列表){代码块}
例如:
void (^SumBlock)(int,int) = ^(intx,inty){
NSLog(@"%d",x+y);
}
使用格式:
SumBlock(12,52);
3)有参数有返回值的定义和使用定义格式:
返回类型 (^block)(参数列表) = ^(参数列表){代码块}
例如:
int (^SumBlock2)(int,int) = ^int(intx,inty){
NSLog(@"%d",x+y);
}
使用格式:
NSLog(@"%d",SumBlock(14,24));
三 Block的实例