码迷,mamicode.com
首页 > 移动开发 > 详细

iOS Block使用

时间:2015-06-08 11:46:31      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

Block 一般是用来表示、简化一小段的程式码,它特别适合用来建立一些同步执行的程式片段、封装一些小型的工作或是用来做为某一个工作完成时的回传呼叫(callback) 。

Block实体形式如下:

^(传入参数列){行为主体};

1:Block可以访问局部变量,但是不能修改。

int multiplier = 7;
    
    int (^myBlock)(int) = ^(int num) {
        
        multiplier ++;//编译报错
        
        return num * multiplier;
        
    };

如果要修改就要加关键字:__block

__block int multiplier = 7;
    
    int (^myBlock)(int) = ^(int num) {
        
        multiplier ++;//编译报错
        
        return num * multiplier;
        
    };

2:作为函数的参数,blocks某种意义上替代了回调函数或者delegate。当函数调用了,假设某个事件触发,这时blocks里的内容就会运行。这样有利于代码的整合和阅读,你不需要到处去实现委托方法了。

3:Block Pointer是这样定义的:

回传值(^名字)(参数列);

4://5:可以直接在block里面修改outA的值,
    static int outA = 8;
    //__block int outA = 8;
    int (^myPtr)(int) = ^(int a){ outA = 5; return outA + a;};
    int result3 = myPtr(3);  //result的值是8,因为outA是static类型的变量
    NSLog(@"result=%d", result3);

iOS Block使用

标签:

原文地址:http://blog.csdn.net/darongzi1314/article/details/46408343

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