------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1. block用来封装一段代码,可以在任何时候执行,建议多用block
2. block的标识是^
3. block跟函数很类似:
(1)都可以保存代码
(2)都有返回值
(3)都有形参
(4)调用方式一样
4. block的定义
(1)不带参数,无返回值的block
void(^myblock)()=^{
NSLog[@"----------"];
};
调用:myblock()
(2)带参数,有返回值的block
int(^sumblock)(int , int)=^(int a , int b){
return a+b;
};
调用:int c =sumblock(10,11)
5. typedef定义block类型
typedef int(^Myblock)(int ;int);//定义了一个Myblock类型
Myblock sumblock=^(int a , int b){ return a+b;};
Myblock minusblock=^(int a , int b){ return a-b;};
调用:sumblock(10,9)
minusblock(10,8)
6. block访问外面变量
(1)block内部可以访问外面的变量
(2)默认情况下,block内部不能修改外面的局部变量
(3)给局部变量加上_block关键字,这个局部变量就可以在block内部修改
比如_block int b=20 在block内部就可以修改b