OC语言之学习篇——04——Block
来源:互联网 发布:沉浸式英语教学软件 编辑:程序博客网 时间:2024/05/16 09:17
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
Block,封装了一段代码,可以在任何时候执行。
和函数很类似,将一段代码封装在一个函数里面,在某一时刻调用函数,就调用了这段代码。
但是,函数需要在编译之前确定。而Block可以在运行的时候保存一段代码,也就是说在程序运行的过程中凭空产生一段代码,这是函数办不到的。
使用Block的标志是: ^。Block和函数很象:可以保存一段代码、有返回值、有形参、调用方式一样。
定义Block变量:
void (^myblock)() = ^{
NSLog(@"----------------");
NSLog(@"----------------");
};
这是没有返回值,没有形参的block。而有形参的:
int (^sumblock)(int,int) = ^(int a,int b){
return a + b;
};
int c = sumblock(10, 11);
void (^lineBlock)(int) = ^(int n)
{
for (int i = 0; i<n; i++) {
NSLog(@"----------------");
}
};
lineBlock(5);
block内部是可以直接访问外面的变量。但是,默认情况下,block内部是不能够直接修改外面的局部变量的。如果想在block内部修改局部变量,需要加上_block关键字。
__block int b = 20;
void (^block)();
block = ^{
b = 25;
};
block();
如何利用typedef来定义block类型呢?和函数一样。
typedef int (^MyBlock)(int, int);
这样,以后就可以利用MyBlock这种类型来定义block变量。MyBlock block;
MyBlock b1, b2;
b1 = ^(int a, int b) {
return a - b;
};
MyBlock b3 = ^(int a, int b) {
return a - b;
};
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
0 0
- OC语言之学习篇——04——Block
- OC语言——block
- 黑马程序员——OC语言Block
- oc——block
- oc——block
- OC基础—block
- OC—Block
- IOS—OC学习六—block
- 进阶之路(基础篇)OC——block
- OC语言之block
- OC语言之block
- 黑马程序员——OC语言中的block数据类型
- 黑马程序员——OC语言加强---block的typedef
- 黑马程序员—oc语言学习心得—block
- OC特有语法—Block
- OC—block的typedef
- 黑马程序员——OC学习——block
- OC学习8——Block用法基础
- Windows下访问VMware中tomcat
- 第二节 JVM优化应用以及知识总结
- D - Blue Jeans(4.6.1)
- Fw:c++中指数函数E后边可以加变量吗?
- 最小树形图(有向图的最小生成树)朱刘算法
- OC语言之学习篇——04——Block
- 股票F10检索工具V8.81---使用技巧
- equals和==的区别
- Java集合源码学习(11)_Set接口的实现LinkedHashSet
- QQ2014聊天记录察看器 V1.0官方版_QQ辅助软件.rar
- Subscript
- kgkjgkjgkjg
- 跟着辛星一起学PHP中的常用的字符串函数
- 黑马程序员Java学习日记(8)网络编程