A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tz19900926 中级黑马   /  2015-9-27 17:39  /  697 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

block 作为函数的返回值

typedef void (^newType) ();

newType test(){

      newType wi = ^{     //定义block

        NSLog(@“xxxxxx”);
        NSLog(@“lllllll”);
     } ;
return w1;    //返回block
}

int main(){

定义block类型变量接收,调用test
newType n1 = test();      
n1();

return 0;
}

分析步骤:
1  使用typedef 定义一个新的类型
2  用新定义的类型作为函数的返回值
3  使用时,定义block变量接收函数返回结果
4  执行block

有参数的block作为函数返回值
typedef int (^newType2) (int ,int );

newType2 test2 (){

//返回一个特殊的“值”,值是一个有返回值,有两个参数的代码块
return  ^(int a, int b){
           return a+b;
    };
}

在main函数中调用
int main(){

newType2 n2 = test2();
int s = n2(15,20);
NSLog(@“%d”,s);

return 0;
}

此时n2= ^(int a, int b){
           return a+b;

    };

2 个回复

倒序浏览
过来学习学习  
回复 使用道具 举报
学习一下,楼主学的挺快的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马