博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
delegate、notification、KVO场景差别
阅读量:6481 次
发布时间:2019-06-23

本文共 467 字,大约阅读时间需要 1 分钟。

delegate:

编译器会给出没有实现代理方法的警告

一对一

使用weak而不是assign,或者vc消失时置为nil

可以传递参数,还可以接收返回值

 

 

notification:

编译期无法排错

一对多

恰当时候需要移除注册,否则多次add会造成多次收到消息

可以传递参数,但无返回值、

 

 

KVO:

简单的实现两对象间的信息同步

能够对非我们创建的对象,即内部对象的状态改变作出响应,而且不需要改变内部对象(SKD对象)的实现

能够提供观察的属性的最新值以及先前值;

用key paths来观察属性,因此也可以观察嵌套对象

完成了对观察对象的抽象,因为不需要额外的代码来允许观察值能够被观察

 

我们观察的属性必须使用strings来定义。因此在编译器不会出现警告以及检查

对属性重构将导致我们的观察代码不再可用;

复杂的“IF”语句要求对象正在观察多个值。这是因为所有的观察代码通过一个方法来指向;

当释放观察者时不需要移除观察者。

转载于:https://www.cnblogs.com/lihaiyin/p/4666982.html

你可能感兴趣的文章
Edge浏览器的ChakraCore javaScript引擎已开源一周年
查看>>
阿里云的互联网方法论
查看>>
大数据在传统行业 落地之痛
查看>>
IBM想把“区块链”技术应用到金融服务以外
查看>>
海润光伏诉讼“威力”大 非公开发行终止也受影响
查看>>
旅游业或成服务机器人应用发展下一入口
查看>>
美国机构发布“智慧城市年度预测”,这几点值得关注
查看>>
Dropbox获6亿美元贷款额度 或年底IPO
查看>>
国内有哪些光伏逆变器厂家排进世界前十的?
查看>>
Facebook牵手微软:宣布将使用其office 365应用
查看>>
诺基亚携DOCOMO进行首次4.5G频段关键测试 助力5G技术开发
查看>>
联手绞杀NVIDIA?传Intel与AMD洽谈GPU授权
查看>>
网络安全研究人员发现新漏洞:或成另一个WannaCry
查看>>
为什么亚马逊要在物流中心屋顶安装太阳能电站?
查看>>
2017中国绿色数据中心发展论坛即将开幕
查看>>
转变有迹可循:企业DevOps部署意愿高涨
查看>>
Facebook正式推出360度全景视频服务
查看>>
神州信息中标量子通信“京沪干线”骨干网项目 迈出量子通信布局重要一步
查看>>
机房走线与服务器运行有何影响
查看>>
美国将试点利用通信技术改善交通状况
查看>>