码迷,mamicode.com
首页 > 其他好文 > 详细

Block

时间:2014-12-23 12:07:18      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

Block封装了一段代码,可以在任何时候执行

Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:

block是inling(内联函数)的,并且默认情况下它对局部变量是只读的

苹果官方建议尽量多用block,在多线程、异步任务、集合遍历、集合排序、动画转场用的很多。

 

一、block可以访问外面定义的局部变量。如果外部的变量用了__block关键字进行了声明,就可以在block内部修改这个变量。否则不能修改。

void test2() {

    

    //__block有两个下划线。

    

    __block int c = 20;

    

    //声明了一个block变量。

    

    MySum sum = ^(int a, int b) {

        

        //如果外部的变量用了__block关键字进行了声明,就可以在block内部修改这个变量。否则不能修改。

        c = 29;

        

        //block可以访问外面定义的局部变量。

        NSLog(@"%i",c);

       

        return a + b;

        

    };

    

    NSLog(@"%i",sum(1,2));

}

Block

标签:

原文地址:http://www.cnblogs.com/unity-lan/p/4179550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!