Block

// 回调函数,函数指针
       
NSArray *array = @[@1 , @2 , @3 , @4] ; //[NSNumber numberWithInteger:1];
        [array
enumerateObjectsUsingBlock :^( id   _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
           
NSLog ( @"obj:%@,id:%lu,stop:%d" ,obj,idx,*stop);
           
//stop 提供了一种对遍历的控制,想要停止遍历的时候,对 stop 调成 yes ok
            *stop =
YES ;
        }];
       
       
//block 声明
       
void (^show) ( id ) = ^( id obj){
           
NSLog ( @"obj:%@" ,obj);
           
        };
       
//block 使用
        show(array);
       
       
typedef int (^Operation) ( int , int );
       
Operation add = ^( int a, int b){
           
return a + b;
        };
       
Operation sub = ^( int a , int b){
           
return a - b;
        };
       
       
int sum = add( 10 , 20 );
       
NSLog ( @"sum = %d" ,sum);
       
       
       
//block 的局部变量的关系
       
//block 能访问局部变量
       
//block 不能修改普通的局部变量
       
//block 能修改 __block 修饰的局部变量
       
       
__block int i = 20 ;
       
void (^print)() = ^{
       
           
NSLog ( @"i = %d" ,i);
        };
        print();
       
    }
   
return 0 ;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值