码迷,mamicode.com
首页 > 其他好文 > 详细

Block实现代理/通知效果

时间:2016-06-25 19:11:50      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

例子1:A控制器-》跳转—》B控制器 , 假设想从B控制器回传数组给A控制器

实现:B控制器.h文件定义一个block参数,.m文件执行block,A控制器设置block内容

B.h文件
//创建block块 @property(nonatomic,copy) void (^Block)(NSArray *array);
B.m文件 //执行block块
!self.Block? (此处为空格):Blcok(array); //判断是否存在Block,存在则执行Block,并且将数组array传递给某某(某某指who定义了Block块的执行代码,此处传递给A控制器)

A.m文件
B *b=[[B alloc]init];
b.Block=^(NSArray *array){
  //Block执行代码
  //... 
};
//B.m中判断存在Block块,则执行Blcok(array),于是进入A.m的 “Block执行代码” 处进行处理,其中Block执行代码”array参数获得B.m传递过来的array

//使用Block过程,需注意循环引用,如对self的循环引用,使用__weak typeof(self) weakSelf=self;

例子2:A控制器完成任务,通知B控制器执行下一步任务

A.h文件
//创建block块
@property(nonatomic,copy) void (^Block)();

A.m文件
//执行block块
!self.Block? (此处为空格):Blcok(); //判断是否存在Block,存在则执行Block


B.m文件
A *a=[[A alloc]init];
a.Block=^(){
  //Block执行代码
  //进行一步任务
};
//a.m中判断存在Block块,执行Blcok(),B.m进入“Block执行代码” 相当于接收到A传递过来的通知信号

//使用Block过程,需注意循环引用,如对self的循环引用,使用__weak typeof(self) weakSelf=self;

 

Block实现代理/通知效果

标签:

原文地址:http://www.cnblogs.com/Eazy/p/5616718.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!