block传值

1.block作属性

发送者

@property (nonatomic,copy) void (^changeBgColor)(UIColor *color);
if (_changeBgColor) {   // 代码块属性不为空
    _changeBgColor(color);
}

接收者

// 下列第一句是弱化操作,防止在文件中循环引用:
__weak typeof(self) weakSelf = self;
[testVC setChangeBgColor:^(UIColor *color) {
    weakSelf.view.backgroundColor = color;
}];
2.block作参数
//方法中定义了一个block数据类型参数(返回值为int类型的,且带有一个int类型的形参)
-(void)calculate:(int (^)(int))calculateBlock
{
    //calculateBlock接受外界传入的代码块,也就意味着怎么去操作是由外界调用者决定的
    _result = calculateBlock(_result);//将_result的值作为实参传入
}
[manager calculate:^int(int i) {
        //参数i自加1,然后返回
        i++;
        return i;
}];
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,321评论 6 13
  • 在我们需要在另一个页面中获取到这个页面个的数据的时候,我们就需要将这个页面通过某种形式传递给另一个页面。在这里我们...
    Joker_King阅读 5,538评论 5 16
  • iOS页面之间传值,通常采取四种方式:属性、通知、代理和Block回调传值这四种方式。 今天在这里,我们详细讲解B...
    56594812a596阅读 3,372评论 0 3
  • 三种在类之间传值得方式 (案例传图片) 1.代理 第一步 在委托者(数据的传递着)的.h文件中,设置代理协议和协议...
    youngCode阅读 428评论 0 5
  • block传值步骤比代理传值步骤简便,实际开发中经常使用到。 block传值分为block属性传值和block方法...
    小熊iOS开发阅读 1,202评论 0 1