Block回顾

这里知识简单介绍一下关于Block的语法,如果你觉得这里很简单或者想学习更深入的的使用清查看记者之前写的使用block传值和高级Block使用:

http://www.cnblogs.com/iCocos/p/4534281.html

http://www.cnblogs.com/iCocos/p/4550169.html

http://www.cnblogs.com/iCocos/p/4659878.html

http://www.cnblogs.com/iCocos/p/4655846.html

  • block : block 函数,代码块
  • block 是一个 "特殊" 对象

函数:

  • 1.无返回值无参数
  • 2.无返回值有参数
  • 3.有返回什又有参数

Block:

  • 1.无返回值无参数
  • 2.无返回值有参数
  • 3.有返回什又有参数

无返回值无参数

C语言函数:

 //无返回值无参数函数
 void say1(){
     NSLog(@"say1.....");
 }
    // 调用函数

    say1();

OC代码块:

 //1.无返回值无参数 block

 void test1(){

     //1.无返回值无参数 block

     void (^say1Block)() = ^{

         NSLog(@"say1block...");

     };

     // 调用block

     say1Block();

 }

无返回值有参数

C语言函数:

 //无返回值有参数函数

 void say2(int age){

     NSLog(@"I'am %d year old!",age);

 }
    //调用
    say2();

OC代码块:

 // 2.无返回值有参数 block

 void test2(){

     void (^say2Block)(int) = ^(int age){

         NSLog(@"I'am %d year old!",age);

     };

     say2Block();

 }

有返回值有参数

C语言函数:

 //有返回值有参数函数

 int sum(int a,int b){

     return a + b;

 }

OC代码块:

 //3.有返回什又有参数 block

 void test3(){

       int (^sumBlock)(int,int) = ^(int a,int b){

             return a + b;

         };

         , );

         ,);

         NSLog(@"result1:%d result2:%d",result1,result2);

         // 对block进行typedef

         // 对"无返回值" 无参数block 进行重定义

         typedef void (^Say2Block)();

         Say2Block block = ^{

             NSLog(@"Say2Block ========");

         };

         block();

 }

iOS开发——语法OC篇&Block回顾的更多相关文章

  1. iOS开发——语法OC篇&BOOL / bool / Boolean / NSCFBoolean

    Name Typedef Header True Value False Value BOOL signed char objc.h YES NO bool _Bool (int) stdbool.h ...

  2. iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

    iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)   前面我们介绍了StoryBoard这个新技术,和纯技术 ...

  3. iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)

    iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)   这里我们就直接上实例: 一:新建一个项目singleV ...

  4. iOS开发 - OC - block的详解 - 深入篇

    深入理解oc中的block 苹果在Mac OS X10.6 和iOS 4之后引入了block语法.这一举动对于许多OC使用者的编码风格改变很大.就我本人而言,感觉block用起来还是很爽的,但一直以来 ...

  5. iOS开发 - OC - block的详解 - 基础篇

    深入理解oc中的block 苹果在Mac OS X10.6 和iOS 4之后引入了block语法.这一举动对于许多OC使用者的编码风格改变很大.就我本人而言,感觉block用起来还是很爽的,但一直以来 ...

  6. iOS开发——实用技术OC篇&单例模式的实实现(ACR&MRC)

    单例模式的实实现(ACR&MRC) 在iOS开发中单例模式是一种非常常见的模式,虽然我们自己实现的比较少,但是,系统却提供了不少的到来模式给我们用,比如最常见的UIApplication,No ...

  7. iOS开发——实战OC篇&环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)

      环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)   研究了这么就IOS开发,都没有所处一个像样或者自己忙一点的项目.最近自 ...

  8. iOS开发——控制器OC篇&UINavigationController&UITabBarController详解

    UINavigationController&UITabBarController详解 一:UINavigationController 控制器的属性: UINavigationControl ...

  9. iOS开发——多线程OC篇&多线程详解

    多线程详解 前面介绍了多线程的各种方式及其使用,这里补一点关于多线程的概念及相关技巧与使用,相信前面不懂的地方看了这里之后你就对多线程基本上没有什么问题了! 1——首先ios开发多线程中必须了解的概念 ...

随机推荐

  1. 黑马程序员——Objective-c特性

    1. 继承  Objective-c不支持多继承. Super 关键字:调用该类的父类: 超类:父类的另一种说法. 2.自定义NSLog()输出: 在类中添加description方法就可以自定义NS ...

  2. I-frame、B-frame、P-frame及DTS、PTS的关系(转)

    基本概念: I frame :帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象. ...

  3. Linker scripts之MEMORY

    1 MEMORY command The MEMORY command describes the location and size of blocks of memory in the targe ...

  4. 王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第十一讲Hadoop图文训练课程:MapReduce的原理机制和流程图剖析

    这一讲我们主要剖析MapReduce的原理机制和流程. “云计算分布式大数据Hadoop实战高手之路”之完整发布目录 云计算分布式大数据实战技术Hadoop交流群:312494188,每天都会在群中发 ...

  5. freetds链接错误

    用tsql连接mssql出现下面的错误 tsql -H 192.168.1.100 -p 1433 -U sa Password: sa locale is "en_US.UTF-8&quo ...

  6. reds pub/sub官方文档翻译

    Publish / Subscribe发布/订阅 redis-py includes a PubSub object that subscribes to channels and listens f ...

  7. Django中如何使用django-celery完成异步任务2(转)

    原文链接: http://www.weiguda.com/blog/74/ 在上一篇博文中, 我们介绍了如何在开发环境中使用Celery. 接下来我们介绍一下如何在部署环境使用Celery. 1. 简 ...

  8. 做fzu oj 1045 做减法学到的sprintf()函数

    题目 做题一直输不出答案,于是就上网去百度了这题的解题,发现解答十分的简短,而且其中我看见了平时没见过的函数,sprintf(). 于是就百度sprintf()的使用. 如下: 函数功能:把格式化的数 ...

  9. hdu1166-敌兵布阵(线段树)

    http://acm.hdu.edu.cn/showproblem.php?pid=1166 区间更新,区间求和 // File Name: hdu1166.cpp // Author: bo_jwo ...

  10. 在drupal7中动态的为某个内容类型添加字段

    $myField_name = "my_new_field_name"; if(!field_info_field($myField_name)) // check if the ...