黑马程序员技术交流社区

标题: block问题 [打印本页]

作者: 流氓划过夜空    时间: 2014-4-17 00:06
标题: block问题
block保存一个代码块   还可以传参   更莫名的是跟函数极其相似   就连功能都差不多    大家有没有觉得block就是个废柴啊   ?   我怎么感觉block  直接就能用函数替代了     。求解block有没有什么特殊的用途   是函数不能解决的   或者   block有什么优点,  比函数强到哪儿了?    有没有不同文件下作用域的问题?
作者: 脸皮猴    时间: 2014-4-17 10:38
能在函数中创建一个函数么?
但是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.     }
复制代码



作者: 悟中生有    时间: 2014-4-17 10:57
block可以用在函数内、方法内、甚至语句内!可以随时调用,只要是在同一个文件内,在调用之前有定义。所以block使用比函数灵活,应该不是废材吧!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2