黑马程序员-----block的学习

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

最简单的定义格式:void(^block名)()=^{代码块;};  //无参无返回值

       使用:block名();

       int(^myBlock)(int)(int)=^(int x)(int y){

return x+y;

};

block的typedef:typedef  返回值类型(^新别名)(参数类型表);

block访问外部变量:block会把外部变量以const的方式复制一份存在block的内存中

int m=10;             
        void(^myBlock)()=^{
            NSLog(@"1m addr =%p",&m);//存在堆区
            NSLog(@"2m=%d",m);
        };        
        myBlock();
                NSLog(@"3m addr =%p",&m);//存在栈区
                NSLog(@"4m=%d",m);
注意:block可以修改全局变量,不可以修改局部变量,如果想要修改,需要在定义变量的时候,前面+“__block”,如果在block内部定义的变量是存在栈区。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值