Block与函数的区别
1定义方式不同
2block是一个类型,函数只是函数
3函数不可以嵌套定义,但是block可以嵌套
4block是数据类型,可以作为函数的参数和返回值,
Block是一个c级别的语法和运行机制,它与标准的c函数类似,不同之处在于,他除了有可执行代码以外,它还包含了与堆,栈内存绑定的变量,因此,block对象包含了一组状态数据,这些数据在程序执行时用语对行为产生影响。
用^操作符声明一个block变量,并指明Block数据的开始,Block的主体部分包含在{}内
Block是一种数据类型
返回值类型 (^变量名)(参数)= ^(参数){
代码块;
};
typedef 后面接变量声明
Block不可以修改变量的值 变量声明__block
block作为函数的参数
函数(block声明)
block作为函数的返回值
block类型 函数名