BLOCK
2016-06-24 16:24
295 查看
1.block可以用来保存一段代码,或者用来封装一段代码。--->代码段,代码块。
2.block的标志是^
3.block跟函数很像
可以保存代码;
可以有返回 值;
也可以有行参;
调用方式一样;
4.定义一个block
#pragma mark 不带参数的block
void (^outputblock)() = ^{
NSLog(@"------------");
};
outputblock();
}
5.带行参的block
#pragma mark - 带参数的block
int (^sumblock)(int, int) = ^(int a,int b){
return a+b;
};
int sum = sumblock(23,23);
int sum1 = sumblock(1,2);
NSLog(@"%d",sum1);
NSLog(@"%d",sum);
#pragma mark - 输出n条横线
void(^myblock)(int) = ^(int n){
for (int i = 0; i < n; i++) {
NSLog(@"-----------------");
};
};
myblock(10);
6.如果block没有行参,可以省略后边的小括号。
7.使用typedef来定义一个block的类型
typedef int(^Myblock)(int,int);
Myblock sumblock = ^(int a,int b){
return a+b;
}
Myblock minus = ^(int a,int b){
return a-b;
}
8.block可以访问外边的变量,但不可以修改外部的局部变量
2.block的标志是^
3.block跟函数很像
可以保存代码;
可以有返回 值;
也可以有行参;
调用方式一样;
4.定义一个block
#pragma mark 不带参数的block
void (^outputblock)() = ^{
NSLog(@"------------");
};
outputblock();
}
5.带行参的block
#pragma mark - 带参数的block
int (^sumblock)(int, int) = ^(int a,int b){
return a+b;
};
int sum = sumblock(23,23);
int sum1 = sumblock(1,2);
NSLog(@"%d",sum1);
NSLog(@"%d",sum);
#pragma mark - 输出n条横线
void(^myblock)(int) = ^(int n){
for (int i = 0; i < n; i++) {
NSLog(@"-----------------");
};
};
myblock(10);
6.如果block没有行参,可以省略后边的小括号。
7.使用typedef来定义一个block的类型
typedef int(^Myblock)(int,int);
Myblock sumblock = ^(int a,int b){
return a+b;
}
Myblock minus = ^(int a,int b){
return a-b;
}
8.block可以访问外边的变量,但不可以修改外部的局部变量
相关文章推荐
- Python的多线程/多进程
- JavaScript笔记整理——驯服线程和定时器
- ZooKeeper架构学习(一)
- Android 性能指标检测工具
- 关于触发点(trigger point )
- xCode 使用快捷键a
- 学习DVB知识的疑问与自我解答
- Android从res/values/strings.xml获取字符串文件路径:res/values/strings.xml <resources> <string name="main_ve
- IntelliJ Idea 常用快捷键列表
- <性能测试进阶指南>性能测试招聘要求
- ecshop_debug_mode
- ecshop验证码位运算
- a ecshop captcha bug
- 安装php环境
- oracle开启numa的支持
- 软件测试实习0624-TestNG依赖测试
- epoll
- linux中mv和rename的区别
- Elasticsearch java API (6) index API
- epoll