Swift中Notification,代理商,通知,block的区别与用法
一 . Notification
1.区别:
一对多
在APP中 , 很多控制器都需要知道一个事件 “应该用通知
2.用法:
Notification 通知中心
1.消息通知机制 顾名思义
在iOS开发中它就是通过消息,来达到通知的目的. 我们需要在通知中心注册我们想要监听的消息
- 当项目中有地方发出这个消息的时候 ,通知中心会发送给注册这个消息的对象
二. 代理商
1.区别:
一对一
对同一个协议 , 一个对象只可设置一个代理商 delegate , 所以单利对象就不能用代理商
代理商更注重过程信息的传输 ,比方: 发起一个网络请求,可能要知道此时请求能否已经开始 , 能否收到了数据 , 数据能否已经接收完成 , 数据接收失败
2.用法:
delegate 委托
委托其实是一种设计模式 , 浅显一点讲就是当自己有需求要解决但是不方便的时候 , 就建立一个委托, 请别人来帮忙解决
@protocol( 协议 )的代码吧 !假如我们要实现一个delegate委托 ,就先要先定义protocol( 协议 ),在指定收到回调的类中(也就是我 )去实现协议中的函数( 例如收短信 ),假如没有实现 ,编译器就会报警告 ;
下面是一个简单的例子
SecondviewController 会回调 FirstViewController ,FirstViewController 实现协议中的回调函数:
三. block 闭包
1.区别:
block 和 delegate 一样 , 一般都是 “一对一之间通信交互” , 相比代理商block 有以下特点:
写法简练 , 不需要protocol 函数等等
block注重结果的传输: 比方对于一个事件,只想知道成功或者者失败 , 并不需要知道进行了多少或者者额外的少量信息
block 需要注意防止循环引用
2.用法:
block 是一种比较特殊的数据类型, 它可以用于两个界面之间传值, 也可以对代码封装作为参数传递 . block 常常结合typedef来使用 , 用自己定义的类型去创立block 显得更加的简单便捷 .
这是我的一个技术交流群:691040931有兴趣的话可以加入 群里只聊技术 内推 广告忽进 进一次踢一次
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Swift中Notification,代理商,通知,block的区别与用法
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Swift中Notification,代理商,通知,block的区别与用法