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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一马当先 中级黑马   /  2016-3-19 21:19  /  840 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

最近学习的基础只是希望对大家有用



/*

   函数:

     void test(){

        /////

     }
   


    函数               代码块类型


  无参无返回值         无参无返回值的代码块
  有参无返回值         有参无返回值的代码块
  有参有返回值         有参有返回值的代码块
  无参有返回值         无参有返回值的代码块
*/


#import <Foundation/Foundation.h>
//
int main(int argc, const char * argv[]) {
    @autoreleasepool {
   
        //1,无参无返回值的代码块的使用
        // 使用block的步骤
        // 1)定义block类型的变量
        // 格式:void (^block变量名)(参数);
        // 2)给变量赋值代码块
        // 格式: block变量名 = ^(){ };  //注意此处的分号,必须得有
        // 3)使用block变量(执行这个代码块),格式: block变量名();
        
        void (^test)(); //定义了一个block的变量
        test = ^(){
        
            NSLog(@"我是inblock test");
        };
        
        //给test重新赋值
        //如果没有参数,小括号可以省略
        test = ^{
            int m = 10;
            int s = m+1000;
        
            NSLog(@"xxxxxx  %d",s);
        
        };
        
        //执行代码块
        test();
        
        
        //2,有参数没有返回值的block的使用
        //格式: void (^block变量名)(参数列表) = ^(形参列表){            };
//        void test2(int a,int b){
//        
//            NSLog(@"a+b = %d",a+b);
//        }
        //定义block变量,变量名test2,没有返回值,有两个参数,并且都是int类型
        void (^test2)(int a,int b) = ^(int a,int b){
        
            NSLog(@"a+b = %d",a+b);
        
        };
        //执行block
        test2(10,28);
        
        
        //3,有参数\有返回值的block的使用
        //格式: 返回值类型(^block变量名)(参数列表) = ^(形参列表){     };
//        int max(int x,int y){
//        
//            return x>y?x:y;
//        }
        //定义了一个有返回值,有两个整形参数的block类型的变量,名称为max
        int (^max)(int x,int y) = ^(int x,int y){
            
            return x>y?x:y;
        
        };
        
        //执行block
        int m = max(42,23);
        NSLog(@"m = %d",m);
        
    }
    return 0;
}

1 个回复

倒序浏览
feng2706 来自手机 中级黑马 2016-3-19 21:22:00
沙发
block的使用挺全的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马