IOS中block的声明定义和使用 一
来源:互联网 发布:软件概要设计范文 编辑:程序博客网 时间:2024/04/30 08:20
对于IOS中Block得使用方法,以下我对Block的使用进行简单的介绍
1:首先声明一个Block指针
有参有返回值的Block的声明方式如下:
无参和无返回值的
void (^myBlock)(void);
有参有返回值的
int (^myBlock)(int,double);
总结:
返回类型 (^Block名称)(参数类型,...);
2:Block的定义
^(int b){
NSLog("%d",b);
return b;
};
总结:
^(参数类型){
Block主体;
};
Block实体开头是“^”,接着是由小括号所包起来的参数列(比如 int a, int b, int c),行为主体由大括号包起来,专有名字叫做block literal。行为主体可以用return回传值,类型会被compiler自动辨别。如果没有参数列要写成: ^(void)。
具体的使用方法如下:
<span style="white-space:pre"></span>int (^my)(int,int); my = ^(int x,int y){ return x+y; }; NSLog(@"%d",my(5,6));
结果:11
这是代表Block会回传输入值的相加值(int a 就是参数列, return a*a; 就是行为主体)。记得行为主体里最后要加“;”,因为是叙述,而整个{}最后也要加“;”,因为Block是物件实体。
3:单Block代码块的使用方法
double sum = ^(double x,double b){return x+b;}(4,10); NSLog(@"sum=%lf",sum);
结果:14.000000例如以上代码:
定义了一个Block代码块,返回值为double,参数为double。最后(4,10)意思是指传一个4和10作为x,b的输入参数的值。
最后结果输出14.000000
如果是无返回值的Block代码块该怎么写?
答:据本人测试并未测试出不使用Block指针的情况下纯Block代码块无返回值现象。故断定(单Block代码块的使用方法)必须有返回值。在第1点中我们也强调了:行为主体可以用return回传值,类型会被compiler自动辨别。所以如果想声明一个无返回类型的Block,还是请使用Block指针先声明好,然后再使用。
附:此点如有错误,请大家指正。感谢不尽!
- IOS中block的声明定义和使用 一
- IOS 中block 的声明和使用
- iOS中block的定义和使用
- iOS中block的定义和使用
- iOS中block的定义和使用
- oc中block的定义和使用
- IOS中得block代码块的定义及使用
- IOS中得block代码块的定义及使用
- IOS中得block代码块的定义及使用
- iOS中得block代码块的定义及使用
- IOS中得block代码块的定义及使用
- iOS中block和代理的使用
- Block的定义和使用
- iOS开发中block的声明、创建、传参的基本使用
- IOS中Block的使用
- iOS block简介和使用(一)
- iOS 学会使用delegate和block<一>
- block的定义和使用,以及block与数组排序
- tableview中的零散问题
- 营销QQ添加好友限制完美解决方案
- [Go] 生成的程序后台运行
- C++--流程控制语句
- Fresco导入android studio方法
- IOS中block的声明定义和使用 一
- 解析android 流量监测的实现原理
- 安装TFS插件 长时间停留在calculating requirements and dependencies
- Reverse Integer
- Launch Screen 做开机启动图
- 可变长参数的函数的写法
- network is unreachable 解决方案之一
- 重建口令文件
- 做一个点在文字的左上角