block语法

在论坛时常看见block,完全不懂下看了些文章和帖子,在这里小结算下,block是iOS4.0后添加的新特性支持,目前在项目里还没有嵌入使用,看了些理论的东西,还不错,能够加快运行效率、使代码更加简洁、异步处理等,推荐几篇学习的帖子,从讲例到代码都有,以供继续深入。


参考地址:http://www.cocoachina.com/bbs/read.php?tid=87593&keyword=block
                  http://www.cocoachina.com/bbs/read.php?tid=88591&keyword=block
                  http://www.cocoachina.com/bbs/read.php?tid=9222&keyword=block

                  http://blog.csdn.net/diyagoanyhacker/article/details/6580697


 Block Variable
在某個變數前面如果加上修飾字__block 的話(注意block前有兩個下底線),這個變數又稱為block variable。那麼在block裡就可以任意修改此變數值,變數值的改變也可以知道。

{
    __block int num = 5;

    int (^myPtr) (int) = ^(int a) { return num++;};
    int (^myPtr2) (int) = ^(int a) { return num++;};
    int result = myPtr(0);
    result = myPtr2(0);
}

因為myPtr和myPtr2都有用到num這個block variable,最後result的值就會是7


如下实现view透明度渐变效果,使用block可简化代码:

    [picChangeViewsetAlpha:0];

    [UIViewanimateWithDuration:0.2fanimations:^(void){

        [picChangeViewsetAlpha:1];

    }];

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations;

方法duration参数控制变化快慢,animations后面的为block语法,void (^)(void)表示该block不带参数且无返回参数, ^(void){ } 结构表示一个block的实现体。


block代替delegate传值示例:http://www.cocoachina.com/bbs/read.php?tid=126759



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值