block(代码块)的一部分简单了解(一)

代码的简单了解

#import <Foundation/Foundation.h>
 int c=0;
int main(int argc, const char * argv[]) {
    @autoreleasepool {
       
        //block声明格式:返回值类型(^block名字)(形参列表)
        int (^myFun)();
        // block实现:block名字=^(形参列表){};
        myFun=^(){
            NSLog(@"这是一个代码块");
            return 1;
        };
        //调用:block名称(实参列表),有返回值的block,可以用一个变量接收
        int a=myFun();
        NSLog(@"%d",a);
        //有返回值,有形参,声明和实现放一起
        int (^myBlock)(int a,int b)=^(int a,int b){
            return a+b;
        };
        //调用
        int sum=myBlock(10,20);
        NSLog(@"%d",sum);
     //返回类型是字符串 NSString  *(^名字)(形参列表)
        NSString *(^myBlock1)(NSString *s)=^(NSString *s){
            NSLog(@"字符串%@",s);
            return  s;
        };
        myBlock1(@"456");
        //有一个局部变量,要在block进行值的改变
        __block int b=0;
        void (^myBlock2)()=^(){
            
            b++;
            NSLog(@"%d",b);
        };
        //有一个全局变量,在block进行值的改变
        void (^myBlock3)()=^(){
            c++;
        };


//例如

//声明一个square的Block Pointer,其所指向的Block有一个int输入和int输出
   int (^square)(int); 
//将Block实体指定给square 
square = ^(int a){ return a+a ; };
 //调用方法。
 int y = square(6); 
NSLog(@"%d", y);
  }
    return 0;
}

 

 

 

 

 

 

 

 

 

        

 

posted on 2016-02-15 10:33  沙->仙人掌  阅读(217)  评论(0编辑  收藏  举报