ios拓展6-block的作为参数

ps:本文针对初学者

block对于初学者,会觉得block比较复杂,很难理解. 尤其是在作为参数的时候. 一般在实际使用的时候我们常用block的两种方式, 一种是 作为 "成员变量", 另一种是作为参数(初学者比较难理解的); 笔者会用一些比较简单的方式进行讲解

初学者如果不熟悉的话,可以使用inline(ps:最好完全手打,不要用),
inline.png
===1.作为成员变量使用(就像普通变量)===

一般就是初始化,赋值,然后调用. 就像使用普通的变量一样,这里不做说明

void(^blk)(int)/*声明*/ = ^(int a)/*赋值,a为形参*/ {
        NSLog(@"%d",a);
    };
    
    blk(2);/*调用*/
===2.作为参数使用===

作为参数使用只要记住 传递实参的时候, 相当于对block 进行赋值, 剩下的就好理解了

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //这里是调用 didBlock: 方法
    [self didBlock:^(int a) {
        NSLog(@"%d",a);   /*调用方法时, 这里实参传递(就相当于赋值)*/
    }];
}

/**
 *  方法
 *
 *  @param blk1 参数名
 */
- (void)didBlock:(void(^)(int))blk1 /*声明*/{
    
    blk1(2);/*调用*/
    
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,682评论 1 92
  • 《Objective-C高级编程》这本书就讲了三个东西:自动引用计数、block、GCD,偏向于从原理上对这些内容...
    WeiHing阅读 13,325评论 10 69
  • 前言 Blocks是C语言的扩充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了这...
    小人不才阅读 9,136评论 0 23
  • Block基础回顾 1.什么是Block? 带有局部变量的匿名函数(名字不重要,知道怎么用就行),差不多就与C语言...
    Bugfix阅读 11,720评论 5 61
  • 大家好我是安倍晴明,今天有个脑子抽筋了的作者。嗯⋯⋯我把他叫做宫女。 他要直播我的抽卡日常,吓得我差点拿小拳拳锤他...
    总有宫女想非礼朕阅读 3,942评论 13 11