黑马程序员技术交流社区
标题:
block(代码段:用来保存一段代码)
[打印本页]
作者:
池莉娘子
时间:
2015-7-11 14:27
标题:
block(代码段:用来保存一段代码)
看一段代码:
#import <Foundation/Foundation.h>
int main()
{
//不带参数的,不带返回值的block变量
// 返回值 变量名 参数 变量值 所以这里的分号不能省略,对比int a = 19;
void (^myblock) () = ^{NSLog(@"block练习");};
//带参数和返回值的block
int (^sumblock)(int,int) = ^(int a,int b){
return a+b;
};
//调用
myblock();
sumblock(10,12);
return 0;
}
简单说明:
1.block是一种数据类型,相当于int,block的标志是^
2.block内部可以访问外面的变量,这也是它与函数的区别,但是默认情况下时不能修改外面的变量的,除非在定义变量时加上__block(两个下划线)
3.利用typedef定义block类型
typedef int (^Myblock)(int,int);
Myblock sumblock = ^(int a,int b){
return a+b;
};
4.block和函数类似
* 可以保存代码
* 可以有返回值
* 可以有形参
* 调用方式类似
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2