当前位置:   article > 正文

【block作为函数的参数 Objective-C语言】_block做函数参数

block做函数参数

一、block作为函数的参数

1.block是1个数据类型,能不能作为函数的参数呢,可以

2.例如,我有1个test函数,现在我要给它定义1个参数,定义1个block类型的参数,什么样的block呢,无参数、无返回值的block

main.m文件中

import <Foundation/Foundation.h>

//为这个函数定义1个参数,定义1个block类型的参数

//无参数、无返回值的block

//如果要给它定义1个int类型的参数,就在小括号里面声明1个int类型的变量就可以了,例如void test(int num)

//如果要定义1个float类型的参数,就在小括号里面声明1个float类型的变量就可以了,例如void test(float f1)

//如果要定义1个block类型的参数,就在小括号里面声明1个block类型的变量就可以了,例如void test(void (^block1)())

void test(void (^block1)())

{

NSLog(@“--------------------”);

}

int main()

{

return 0;

}

这个时候,我是不是就在test()这个函数的小括号里面,声明了1个无参数、无返回值的block变量了啊,那么这个时候,这个block1就是这个test()函数的参数

这个参数block1是不是存储了代码啊,那么我就执行1下这个参数里的代码,如下:

void test(void (^block1)())

{

NSLog(@“--------------------”);

block1();

NSLog(@“--------------------”);

}

int main()

{

return 0;

}

3.如何为函数定义1个block类型的参数

1)在函数的小括弧里面,声明1个指定格式的block类型的变量就可以了

2)如果看见上面这个写法有点晕:

void test(void (^block1)()){

NSLog(@“----------------”);

block1();

NSLog(@“----------------”);

}

那就通过typedef把它弄成短格式就可以了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/421813
推荐阅读
相关标签
  

闽ICP备14008679号