黑马程序员_OC基础09_block

来源:互联网 发布:php高级编程 pdf 微盘 编辑:程序博客网 时间:2024/05/17 02:50

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

一、概念

block是一种基本数据类型

二、作用

block可以封装一段代码,在任何时候执行

三、使用方法

1、定义block

//定义一个返回值为int,带两个int参数的blockint (^MySum)(int, int) = ^(int a, int b) {return a+b;};

// 定义一个返回值为空,没有行参的blockvoid (^myblock)() = ^(){    NSLog(@"----------------");};
// 如果block没有形参,可以省略后面的()void (^myblock)() = ^{    NSLog(@"----------------");};

2、用typedef定义block类型

// 利用typedef定义block类型typedef int (^MyBlock)(int, int);// 以后就可以利用MyBlock这种类型来定义block变量MyBlock b1, b2; b1 = ^(int a, int b) {   return a - b;}; MyBlock b3 = ^(int a, int b) {   return a - b;};


四、注意点

1、block内部可以访问外部的局部变量,但默认情况下是不可修改的

2、如果要修改局部变量需要在变量前加上__block关键字(这里是两个_)



---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------详细请查看:www.itheima.com

0 0