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; }

 

 

 

 

 

 

 

 

 

        

 

你可能感兴趣的:(block(代码块)的一部分简单了解(一))