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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 流氓划过夜空 中级黑马   /  2014-4-17 00:06  /  1120 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

block保存一个代码块   还可以传参   更莫名的是跟函数极其相似   就连功能都差不多    大家有没有觉得block就是个废柴啊   ?   我怎么感觉block  直接就能用函数替代了     。求解block有没有什么特殊的用途   是函数不能解决的   或者   block有什么优点,  比函数强到哪儿了?    有没有不同文件下作用域的问题?

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

2 个回复

倒序浏览
能在函数中创建一个函数么?
但是block就可以,可以在函数中根据需要创建一个代码块。而把这个代码块作为参数传送给另一个函数。
  1. int test( void (^block)(int a,int b))
  2. {
  3.     int a = 1;
  4.     int b = 2;
  5.     block(a,b);
  6.     return 0;
  7. }

  8. int main(int argc, char *argv[])
  9. {

  10.         
  11.         test(^(int a, int b) {
  12.             
  13.             NSLog(@"%d",a + b);
  14.         });
  15.     return 0;
  16.     }
复制代码


评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
block可以用在函数内、方法内、甚至语句内!可以随时调用,只要是在同一个文件内,在调用之前有定义。所以block使用比函数灵活,应该不是废材吧!

评分

参与人数 1黑马币 +2 收起 理由
jing迪 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马