Block实现代理/通知效果
例子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实现代理/通知效果的更多相关文章
- iOS开发——OC篇&消息传递机制(KVO/NOtification/Block/代理/Target-Action)
iOS开发中消息传递机制(KVO/NOtification/Block/代理/Target-Action) 今晚看到了一篇好的文章,所以就搬过来了,方便自己以后学习 虽然这一期的主题是关于Fou ...
- block和代理小结
代理使用原则: 代理方法的参数是要传的值,代理方法的返回值是要得到的值(即要调用的类回传的值),并且在实现的代理方法中的值就是原来的类要传的值(设置delegate=self), 比如2个类 A,B ...
- iOS block和代理的区别
block和代理是iOS开发中实现回调的两种方式,大多数情况下是用哪个都可以,主要看个人喜好.本文主要是对两者做一下对比. 1.block简介 在 iOS中, block一共分三种. (1 ...
- IOS中block和代理
从ios4开始引入block,就是代码块,结构类c语言 基本结构 返回值 (^block名称)(参数):int(^BlockName)(int):返回值为int型,参数是一个int值的叫BlockNa ...
- iOS开发之巧用Block和代理方法结合来传值
好久没写技术博客了,因为996的工作周期已经持续好几个月了.每天晚上回家都没有太多精力学习很多其他的东西,而且很多时候是接着完善工作的项目的模块开发.所以博客停歇了这么久,更新率也低了不少,今天补充一 ...
- IOS第十天(1:QQ好友列表 ,自定义的headview,代理 ,通知 ,black的使用)
*****HMViewController.m #import "HMViewController.h" #import "HMFriendsGroupModel.h&q ...
- iOS之 block,代替代理作为回调函数
最近在弄一个视频会议的项目,但今天要说的跟视频基本没关系,我们来说一下在一个view中创建一个button,在controller中加载这个view 当button被点击后将时间响应传递给contro ...
- Block与代理的使用
本人其实是比较喜欢用Block的,因为用block写出来的代码,让我感觉代码要紧凑一些,看起来的时候,思路要清晰些,所以这估计也就是现在block将要代替代理的原因所在吧! 下面,直接进入主题: 一. ...
- iOS设计模式-Block实现代理的逻辑
在A页面,点击跳转到B页面,B页面操作完,回到A页面,并刷新A页面的内容.典型的例子,就是在一个列表里,点击新增,跳到新增页面,新增完,把数据传回给列表页,并刷新列表页里的内容. 这个,我平时一般是通 ...
随机推荐
- Win10下数据增强及标注工具安装
Win10下数据增强及标注工具安装 一. 数据增强利器—Augmentor 1.安装 只需在控制台输入:pip install Augmentor 2.简介 Augmentor是用于图像增强的软件 ...
- PHP计划任务
server 2008:D:\SOFT_PHP_PACKAGE\php\php-cgi.exe -f D:\wwwroot\tlbuyuncom\wwwroot\Up_Data.phpPHP路径 -f ...
- CodeForces - 755B PolandBall and Game(博弈)
题意:A和B两人每人都熟悉一些单词.A先开始,每人说一个单词,单词不能与两人之前说过的所有单词重复,谁无话可说谁输.两人可能有共同会的单词. 分析:因为要让对方尽量无单词可说,所以每个人优先说的都是两 ...
- 微信小程序实现左滑删除效果(原生/uni-app)
实现效果 列表中侧滑删除 删除不同时存在 scrollview上下滑动与侧滑删除不影响 uni-app实现 html部分 <template> <scroll-view :scrol ...
- 小程序 scroll-view 中文字不换行问题
问题描述:在scroll-view 中scroll-x="true"时控制文字超出显示省略号,要求如图: 但实际中会出现如文字不换行或样式错乱的问题. 横向滚动的实现如下: 超过两 ...
- NetWork--记一次Http和TLS抓包
参考 前言 工具 wireshark IP 发送方IP: 150.236.224.39 服务IP: 10.210.164.20 消息 Http,Https消息使用org.apache.http.cli ...
- django 实现 内网访问 和 用花生壳进行内网穿透
1.在setting.py中找到 ALLOWED_HOSTS = [] 改为 ALLOWED_HOSTS = ['*',]2.启动服务时使用如下命令行 python .\manage.py runs ...
- LINUX——磁盘管理
硬盘种类 SATA硬盘:用SATA接口的硬盘又叫串口硬盘,是以后PC机的主流发展方向,因为其有较强的纠错能力,错误一经发现能自动纠正,这样就大大的提高了数据传输的安全性.新的SATA 使用了差动信号系 ...
- Spring Boot2(006):关于配置类(Configuration Classes)和配置(Configuration)
一.配置类(Configuration Classes) Spring Boot 支持基于 xml 的配置,但更偏向于使用基于 Java 的配置,通常建议使用定义有 main 方法的主 @Config ...
- Vulkan 之 Debugging
1.可以用validation layers 进行验证: 2.Snapdragon Profiler 使用说明