Objective-c - block作为方法的参数

/*

 Objective-c - block作为方法的参数

 

    block做为方法的参数可以实现按自己的打印要求传入参数,实现对一个数组的遍历.

 

    将便利出来的数据交给调用者去处理.

 

    调用者可以下一段符合参数要求的代码做为参数传递到方法内部,实现自己对遍历出来的数据的处理.


 如下代码:

 

 */


#import <Foundation/Foundation.h>

#pragma mark -

#pragma mark 类的声明

//使用typedef简化参数

typedef void(^NewType)(int value);


@interface YYArray : NSObject


//block作为方法的参数

- (void)printWithBlock:(NewType)demand;


@end


#pragma mark -

#pragma mark 类的实现

@interface YYArray ()


{

    int arr[10];

}


@end



@implementation YYArray


//重写init方法

- (instancetype)init

{

    if(self = [super init])

    {

        for(int i = 0; i < 10; i++)

        {

            arr[i] = (i + 1) * 10;

        }

    }

    return self;

}


//block作为方法的参数

- (void)printWithBlock:(NewType)demand

{

    for(int i = 0; i < 10; i++)

    {

        demand(arr[i]);

    }

}


@end


#pragma mark -

#pragma mark main函数

int main(int argc, const char * argv[]) {

  

    //创建对象

    YYArray *arr = [YYArray new];

    

    

    //按自己的要求初始化符合类型的block变量

    NewType b1 = ^void(int value){

      

        NSLog(@"%d", value/10);

    };

    

    //1,调用方法的时候传入参数

    [arr printWithBlock:b1];

    

    //2,调用方法的时候直接为方法传入一段符合参数要求的代码段

    [arr printWithBlock:^void(int value){

        

        NSLog(@"%d", value*10);

    }];

    

    return 0;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值