Block在整个iOS开发中无所不见,很重要,很重要,文本在这里block的简单使用介绍。我们可以简单地定义、使用block。

  1. Block和C的指针函数很像,但比C的函数灵活多了。废话了。。。。

    例子比较:

 //C函数
int funSum(int a, int b) {
return a + b;
} int main(int argc, const char * argv[]) {
@autoreleasepool { //定义了pointSum这种指针类型, 这种指针类型指向函数
typedef int (*pointSum) (int, int); //定义了一个指针变量ps, 赋值funSum
pointSum ps = funSum; //C函数调用
int a = ps(, ); // (*ps)(12, 23);
NSLog(@"a = %i", a);
}
return ;
} 
int main(int argc, const char * argv[]) {
@autoreleasepool { //定义了blockSum这种block的类型,注blockSum为类型名
typedef int (^blockSum) (int, int); //定义了一个blockSum类型的block变量bs 并为其赋值block块内容
blockSum bs = ^(int a, int b) {
return a + b;
};
int a = bs(, );
NSLog(@"a = %i", a);
}
return ;
}

  2. Block定义及使用

 void BlockDemo() { 

     //声明  一个名为blockSum返回值为int类型,接受两个int、int类型的参数的Block, 也可以写成这样 int (^blockSum) (int a, int b);
int (^blockSum) (int, int); //赋值 (这个名为blockSum的代码段所要做的事情)
blockSum = ^(int a, int b) {
return a + b;
}; //调用这个block赋值给变量a
int a = blockSum(, );
NSLog(@"a=%i", a); //a = 4
}
 typedef int (^blockSum) (int, int);     //typedef修饰的block类型,这种类型可以定义任意多,我们在开发中它来定义block很常见
void blockDome() {
//int c =100000000;
__block int c =; //此处是两个"_"
blockSum bs = ^(int a, int b){
a = ; //block代码快可以访问局不变量,但不能修改局不变量的值, 若要修改必须在定义该变量前加__block修饰
c = a + b;
return a + b;
}; NSLog(@"block修改前:c = %i", c);
bs(, )
NSLog(@"block修改后:c = %i", c);
}

  

最新文章

  1. iOS---关于UIWebView
  2. iOS--页面间的代理传值(属性、代理(委托)、代码块、单例、通知)
  3. ruby安装插件报错
  4. Log4net - 规则简介(续)
  5. HashMap和Hashtable
  6. 对于windows窗口的标题菜单栏的操作——删除/禁用 最小最大话和关闭
  7. 重操JS旧业第六弹:基本类型包装
  8. Android毛玻璃处理代码(Blur)
  9. es6笔记2^_^array
  10. Java开发笔记(二十九)大整数BigInteger
  11. Codeforces Gym 101190M Mole Tunnels - 费用流
  12. java运行时could not open ........jvm.cfg问题的解决
  13. CDC画图
  14. POJ 3694 Network(并查集缩点 + 朴素的LCA + 无向图求桥)题解
  15. Netty 零拷贝(一)NIO 对零拷贝的支持
  16. Django之modelform修改数据库
  17. PHP编程效率的20个要点-[转]
  18. 【BZOJ2217】[Poi2011]Lollipop 乱搞
  19. 爬虫 - xpath 匹配
  20. Citrix服务器虚拟化之二十九 XenApp 6.5发布服务器上的应用程序

热门文章

  1. 添加WoSign根证书到JDK
  2. 自定义asp.net 脚手架(基架)
  3. Linux下的C Socket编程 -- 获取对方IP地址
  4. MVC 数据验证
  5. WPF仿百度Echarts人口迁移图
  6. NPOI操作EXCEL(二)——大量不同模板时设计方式
  7. php设计模式--面向对象
  8. SSRF篇-本着就了解安全本质的想法,尽可能的用通俗易懂的语言去解释安全漏洞问题
  9. jQuery 树形菜单
  10. PHP curl报错“Problem (2) in the Chunked-Encoded data”解决方案