OC block 简单应用

    xiaoxiao2025-10-24  13

    @property (nonatomic, assign) void(^edit)(id);

        cells.edit=^(tableviewCell * cell){

           

        };

    //block 做参数

    typedef NSString*(^myblock)(void);

     

    -(void)DwonLoad:(myblock)block;

    +(id)getAPIDataresult:(void (^)(id resut))objct;

     

            //声明一个block

            //block  名字

            void (^block)(void);

            //block 指向函数

            block =^{

                //代码块

                NSLog(@"Hello World");

            };

           

            block();  //调用block

           

           

            void(^block1)(int);//声明变量名可以不用

           block1=^(int a){  //实现中变量名不可缺少

               NSLog(@"%d",a);

           };

           block1(3);

           

           int (^block2)(int a);

           block2=^(int a){

               return a+9;

           };

           

           NSLog(@"%d",block2(1));

           

           

            //声明与实现一起写

            int(^block3)(int,int)=^(int a,int b){

                returna+b;

            };

           

            NSLog(@"%d",block3(2,8));

           

            //被__block 修饰的变量才能在 block内部被修改

            __block int numA=10;

            int numB=20;

            //Block可以直接访问到所在函数的内部变量

            int(^block4)(void)=^{

               

               numA=30 //修改外部函数,外部函数在声明时需要__block修饰

               return numA+numB;

           };

           

           NSLog(@"%d",block4());

           

           

            NSString *strs=@"asdfg点点滴滴";

           

           NSString * (^str)(void)=^{

               NSMutableString*tempStr=[[NSMutableString alloc]initWithCapacity:strs.length];

               for(NSIntegeri=strs.length-1;i>=0;i--)

               {

                    unicharch=[strs characterAtIndex:i];

                    [tempStr appendFormat:@"%C",ch];

                }

               return tempStr;

           };

           

           NSLog(@"%@",str());

    //block作为参数

    - (void)backBlock(void (^)())block;

    //block函数

    @property (nonatomic,strong) void (^loadStatus)(loadStatus connection, float loadsStatus,NSError *error);

    转载请注明原文地址: https://ju.6miu.com/read-1303477.html
    最新回复(0)