OC语言——block
来源:互联网 发布:盗墓java 编辑:程序博客网 时间:2024/06/05 14:14
block用来保存一段代码,标志:^
block跟函数很像,可以保存代码,有返回值,有行参,调用方式也一样。
如果block没有行参可以省略后面的小括号。
1.定义没有新参的block变量
void(^myBlock)() = ^{ NSlog(@"----------")};//利用定义的block变量调用block内部的代码myBlock();
2.带参数的block
int(^sumBlock)(int, int) = ^(int a, int b){ return a + b;};int c = sumBlock(10 ,20);
3.编写一个block,让它输出一条,或者多条直线。
void(^lineBlock)(int) = ^(int n){ for(int i = 0; i<n; i++){ NSLog(@"------------"); }};
// 输出3条直线lineBlock(3);
4.使用typedef定义block
typedef int (^MyBlock)(int, int);MyBlock sumBlock;sumBlock = ^(int a, int b){ return a+b;};
或者
MyBlock sumBlock = ^(int a, int b){ return a+b;};
注意点:调用的时候不能使用MyBlock,而是用变量名来调用
// 输出上述结果
NSLog(@"%d-%d",sumBlock(10, 9));
5.block内部可以访问外面的变量
默认情况下,bock内部不能修改外面的局部变量
给局部变量加上_block关键字,这个局部变量就可以在block内部修改
int a = 10;_block int b = 20;
void(^block)();block = ^{ NSLog(@"a = %d, a); b = 90;}
0 0
- OC语言——block
- 黑马程序员——OC语言Block
- oc——block
- oc——block
- OC基础—block
- OC—Block
- 黑马程序员——OC语言中的block数据类型
- 黑马程序员——OC语言加强---block的typedef
- 黑马程序员—oc语言学习心得—block
- OC语言中的block
- OC语言之block
- OC语言--BLOCK
- OC语言之block
- OC特有语法—Block
- OC—block的typedef
- OC语言BLOCK和协议
- OC语言Block和协议
- OC语言BLOCK和协议
- [IOS 开发] frame与bounds的区别比较
- 《VxWorks学习笔记》——实时系统
- 工作可以暂时缓缓。找女朋友要紧呐!
- cocos2d学习笔记(自定义类)
- 动态库
- OC语言——block
- 老码识途 数组和结构体
- Objective-C Runtime 运行时之一:类与对象
- Windows 8.1及Windows8 JDK环境变量配置
- android listview滑动出现arrayIndexOutOfBoundException
- 浅谈医学大数据(上)
- 界面上始终有一个浮动的小图标“C",请问如何去掉?
- 二分法练习题目
- 白帽子