首页 > 代码库 > Objective-C:09_Block

Objective-C:09_Block

block用来保存一段代码
block标识:^
blick和函数很像:
    1、可以保存代码段
    2、有返回值
    3、有形参
    4、调用方式一样
    
    
    block的定义:
        返回值类型  (^block名称)(形参类型列表) = ^(参数列表){代码段};
    block调用:
        block名称(参数列表);
 
    int (^sumblock)(int,int) = ^(int a,int b){
        return a+b;
    };
 
    定义block变量:
         int (^sumblock)(int,int) 
    利用block封装代码:
        ^(int a,int b)
        {
        return a+b;
        };
        
    block访问外部变量:
        1、block内部可以访问外部的变量
        2、默认情况下,block内部不能修改外面的局部变量
        3、给局部变量加上__block关键字(前面两条下划线),这个局部变量就可以在block内部修改 
    
    利用typedef定义block类型:
        typedef int (^Myblock)(int , int);
        
        Myblock     b1,b2;
        Myblock  sumblock=^(int a,int b) {
            return a+b;
            };
 
 
 
 
和指向函数的指针很像:
    int sum(int a , int b)
    {
        return a+b;
    }
 
    函数指针:int (*p)(int , int) = sum;
                    p(10 ,12);
 
 
 
 
 
 
 
 
 
 
 
 

Objective-C:09_Block