iOS之Block
来源:互联网 发布:淘宝专业刷单团队 编辑:程序博客网 时间:2024/05/31 00:40
1.Block
Block 一般又block pointer 和 block实体组成。
int (^ square) (int);//block pointer;声明block,
square = ^(int a) { return a*a;}//block 实体;
2.在objective C 中声明方法:
-(void) objcMethod :(int (^)(int)) square;
?为什么方法的返回值是void 而block 作为传入参数square的返回值是int,
同时 int (^ square) (int )这种声明方法和 (int (^) (int)) square也有一些区别。这是要特别注意的地方。
而在实现方法时,采用的是………^(int id){ 主体};
比如在NSArray中的遍历方法
[test enumrateObjectsUsingBlock:^(id obj,NSInteger idx,BOOL * stop ) {主体;}];
3.存取可变变量和存取不可变变量
不可变变量:
- {
- int outA = 8;
- int (^myPtr)(int) = ^(int a){ return outA + a;};
- //block里面可以读取同一类型的outA的值
- int result = myPtr(3); // result is 11
- NSLog(@"result=%d", result);
- }
可变变量:
- {
- static int outA = 8;
- int (^myPtr)(int) = ^(int a){return outA + a;};
- outA = 5;
- int result = myPtr(3); //result的值是8,因为outA是static类型的变量
- NSLog(@"result=%d", result);
- }
_block int num;
作用同可变变量。
0 0
- ios block之理解
- IOS之Block使用
- ios学习之block
- IOS 之Block编程
- iOS 学习之 Block
- iOS之block
- iOS 之Block详解
- iOS 笔记之 Block
- IOS之Block详解
- iOS 之 block
- iOS学习之block
- iOS之Block
- iOS 笔记之block
- iOS之block
- ios oc之block
- ios之block
- iOS之block
- iOS之block浅谈
- 架构师之路(39)---IoC框架
- 柔性数组成员简介
- ICMP协议
- hibernate多表关联查询VO的问题
- 【java】贪吃蛇小游戏
- iOS之Block
- tomcat监控probe
- 常用网站开发工具收集
- 使用eclipse调试SylixOS应用
- 使用Qrcode第三方组件生成二维码
- 谁动了项目的时间?
- TCP/UDP常见端口列表
- 未能加载文件或程序集“XXX”或它的某一个依赖项。磁盘空间不足---解决方案
- 【Java】Java单例模式的七种写法 (全)