A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© peng_gavin 中级黑马   /  2015-7-9 18:02  /  530 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Block对象是一个C级别的语法和运行机制。它与标准的C函数类似,不同之处在于,它除了有可执行代码以外,它还包含了与堆、栈内存绑定的变量。因此,Block对象包含着一组状态数据,这些数据在程序执行时用于对行为产生影响。
用^操作符来声明一个Block变量,并指明Block述句的开始。Block的主体部分包含在{}内.
1)block最简单形式
定义格式:void (^block名)() = ^{代码块;}
使用格式:block名();
//定义的时候,把block当成数据类型
void(^myBlock)() = ^ {
NSLog(@"hello");
};
// 执行时,把block当成函数
myBlock();

2) block带有参数的block的定义和使用

格式:void (^block名称)(参数列表)= ^ (参数列表) { // 代码实现; }
//定义有参数的block
void(^sumBlock)(int, int) = ^ (intx, inty) {
NSLog(@"%d", x + y);
};
//调用block
sumBlock(10, 20);

3)带有参数和返回值的block

格式:返回类型(^block名称)(参数列表)= ^ 返回类型(参数列表) { // 代码实现; }

//定义有返回值和参数的block
int(^sumBlock2)(int, int) = ^ int(inta, intb) {
returna + b;
};
//调用有返回值的block
NSLog(@"%d", sumBlock2(4, 8));

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马