Block简单介绍
来源:互联网 发布:浪潮服务器安装centos 编辑:程序博客网 时间:2024/06/07 11:43
Block代码块封装了一段代码,它可以在任意位置使用。Block既可以作为函数的参数也可以作为其返回值,也可以作为对象的属性使用。
1、语法示例:
int (^blockName)(int,int) = ^int(int a,int b){ return a+b; };语法格式:返回值数据类型 (^block代码块函数名)(参数类型,参数类型)。当参数为空时可直接用空的小括号(),如
int (^blockName)() = ^int(){ //业务逻辑}2、Block的声明和定义
大致可分为以下几种(a:无返回值无参数 b:无返回值有参数 c:有返回值无参数d:有返回值有参数四种情况)
a 、无返回值,无参数
void(^myblok)(void)=^(void){ NSLog(@"无返回值,无参数!");};
b、无返回值,有参数
//声明typedef void(^Method2)(int,int);//定义Method2 method2 = ^(int a,int b){ NSLog(@"method2的执行加法,结果为:%d",(a+b));};
c、有返回值,无参数
float (^Method1)() = ^float{ return 2.1;};
d、有返回值,有参数
//声明typedef int(^Method3)(float,float);//定义Method3 method3 = ^int(float a, float b){ return (int)(a+b);};
3、__block关键字的使用
在block的使用中,在代码块中可以访问全局变量也可以修改全局变量的值,但是如果变量是局部变量,那么就只能对其进行访问但是不能进行修改。因为在执行到Block代码块时,已经对代码里的变量做了值拷贝。之后无论在 Block体内如何变化,值都保持之前拷贝的那一份。如果在变量前添加上__block关键字修饰,只该变量会变成可读写。例子如下:
3.1、block 内部可以对全局变量进行读写操作
在代码块内部可以访问全局变量a,同时也可以修改全局变量a得值。运行结果为:20,31
3.2、block内部对局部变量只能进行读操作,无法修改
3.3、对局部变量添加__block修饰即可在内部对该变量进行读写操作
运行结果为:20,41
1 0
- Block简单介绍
- Block简单介绍
- OC中的Block简单介绍
- Block,简单使用和介绍
- iOS中Block的简单介绍
- block的总结及简单介绍
- Block 介绍
- block,代理和通知的简单介绍--swift闭包
- Offline Application Block介绍
- Block,extent,segment介绍
- iOS中Block介绍
- iOS中Block介绍
- ios中Block介绍
- iOS中Block介绍
- Block使用介绍(-)
- Block和GCD介绍
- block的介绍
- block块的介绍
- AIDL ——基础概念
- iOS前后端分离Swagger使用 swagger ISO8016报错
- boost之路 十三 容器
- Redis的持久化方式
- C. K-special Tables【构造】水
- Block简单介绍
- QT中mysql数据库的使用
- 直观判断图像是否可以被实时处理
- uva10883 - Supermean-杨辉三角+log应用
- 1015. Reversible Primes (20)
- java 集合概述
- git撤销修改各种情况
- 查看端口是否能启用
- boost之路 十四 数据结构