OBJC的BLOCK简单理解
来源:互联网 发布:mysql修改数据库列名 编辑:程序博客网 时间:2024/05/29 18:36
block是什么?
顾名思义,它就是一个块,代码块。
但,我这里任性地把它当作是一个函数,它就是一个函数的声明和具体实现。
既然是函数,那么理解它的使用方式就比较简单了。
1)声明这个函数;
2)编写这个函数的具体实现。
3)在某个地方调用这个函数。
接下来看代码
1 声明这个函数
double (^blockExample)(int);
是不是很懊恼这个有点奇怪的写法?没关系,首先你只要明白这就是一个声明。跟声明变量类似,这个声明一个函数,你也可以把它看作一个变量。
下面具体看这行代码:
1)double : 这个是一个类型,写在最左边。它是返回值类型,也就是这个函数的执行完以后的返回值类型。你可以写int, float, void…都可以。
2)(int) : 这也是一个类型,写在最右边,它是这个函数的参数类型,注意:跟返回值不同,参数类型需要用()包起来。
3)(^blockExample):这个东西看起来很怪异,但其实只是语法上有点。其含义就是:我声明的这个是一个块,块的名字叫做blockExample。“^”表明这是一个块,后面跟着自定义的块的名字。注意:这个也需要用()包起来。
一句话总结:我声明了一个函数,叫做blockExample。参数是int类型,返回值是double类型。
2 编写具体实现
我们声明了一个函数,那这个函数总得做点什么。而所要做的具体内容是什么,那就需要我们来编写了。下面看代码:
^(int param){ NSLog(@"我在这个区块里做了一些事");}
看这个代码,“^”又出现了,说明这是一个块。再看()中除了类型,多了一个指代的名字,这是一个形式参数。接下来{}一个区块中,那么就是我们需要做的具体内容。
一句话总结:传入一个int型的参数,在{}中编写具体实现。
3 调用这个函数
前面两步,我们声明了函数,并编写了具体实现。
所以前两步的代码应该是:
double (^blockExample)(int) = ^(int param){ NSLog(@"我在这个区块里做了一些事");}
既然,我们有了这个函数。怎么调用它呢?很简单。
只需要
blockExample();
一句话
这样,BLOCK的三步就简单的完成了。总得看起来,其实也就两行代码。
- OBJC的BLOCK简单理解
- Block的简单理解
- Objc中block的实现
- Objc C --Block的浅谈
- Block的一些简单理解
- objc block的介绍和使用
- Objc Block 对于变量的访问
- objc block的介绍和使用
- 理解ObjC下的ARC
- objc 之category的理解
- block 简单理解
- objc--实现简单的输出,
- objc中的block
- objc 中的 block
- objc 中的 block
- iOS 开发,block是什么?clang -rewrite-objc反编译block,带你揭开block的神秘面纱
- Objc中Block的原理、实现及注意事项
- objc利用block实现链式编程的异类法方法
- javascript基础难点
- 1111. Online Map (30)[dijkstra算法]
- Simple Introduction to Geometry Shaders in GLSL (Part 1)
- 解决Ubuntu下Sublime Text 3无法输入中文
- Github和webstorm结合使用
- OBJC的BLOCK简单理解
- 静态变量与类大小关系
- Simple Introduction to Geometry Shaders in GLSL (Part 2)
- Zookeeper 源码环境搭建
- windows下面安装Python和pip教程
- Linux下查看系统配置
- 网易MySQL数据库工程师微专业学习笔记(九)
- Leetcode Algorithm 002. Add Two Numbers
- 使用计划任务和bitsadmin实现恶意代码长期控守