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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(代码块)的一部分简单了解的主要内容,如果未能解决你的问题,请参考以下文章

Sphinx - 在代码块片段中使用省略号 (...)

Block 简单代码块的声明实现与调用

ios block和delegate的区别

block没那么难:block的实现

iOS:使用block代码块实现事件处理过程中的回调

控件集合无法修改,因为控件包含代码块(即 <% ... %>)