首页 > 移动平台 > 详细

iOS Block的简单使用

时间:2016-05-11 19:43:54      阅读:136      评论:0      收藏:0      [点我收藏+]

目录:本文将分三个部分讲解block块的基本用法,由于本人水平有限,不足之处还望指正,谢谢!

一、block块的基本用法:

相信大家都很熟悉了,下面直接上代码:

    //1,block初探,无参数,无返回值
    void (^MyBlock)(void) = ^(void){
    
        NSLog(@"2,打印出来了,我就是block,无参数,无返回值");
    };
    NSLog(@"1");
    MyBlock();
    
    //2,有参数,无返回值
    void (^MyblockTwo)(int a) = ^(int a){
    
        NSLog(@"@ = %d我就是block,有参数,无返回值",a);
    };
    
    MyblockTwo(100);
    
    //3,有参数,有返回值
    int (^MyBlockThree)(int, int) = ^int(int a,int b){
    
        NSLog(@"%d我就是block,有参数,有返回值",a + b);
        return a + b;
    };
   
    MyBlockThree(12,56);

以上三个是block最基本的用法,也是局部的block块,就不多说了,这主要争对初学者,主意block回调的时机。

二、block块的进阶用法:

我的代码是在实现文件中

声明:

- (void)getNameBlock:(void(^)(NSString *string))myBlockName;

实现:

- (void)getNameBlock:(void (^)(NSString *))myBlockName{

    NSLog(@"我先走一步了哈");

    [self laterGoBlock:myBlockName];  

}

调用:

[self getNameBlock:^(NSString *string) {

        NSLog(@"这次我小马哥真走了哈,%@",string);

    }];

看这时候我又定义了一个block,这个block是全局的,在.h文件中定义如下:

声明:

- (void)laterGoBlock:(void(^)(NSString *))myBlockJC;

实现:

- (void)laterGoBlock:(void(^)(NSString *))myBlockJC{

     myBlockJC(@"我是小马哥,知道我的目的了吧");

}

看我的目的是在这个方法中实现block的回调,如果这你理解了,那么不同界面用block传值就很简单了。未完待续

iOS Block的简单使用

原文:http://www.cnblogs.com/RiversMa/p/5483227.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!