delegate:

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

一对一

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

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

notification:

编译期无法排错

一对多

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

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

KVO:

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

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

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

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

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

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

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

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

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

最新文章

  1. JS的字符串处理
  2. 用file上传文件时,浏览器返回值总是自动添加<pre>的解决办法
  3. C# 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节
  4. 本地调试webapi
  5. [HDOJ5573]Binary Tree(找规律,贪心)
  6. 【写一个自己的js库】 3.添加几个处理字符串的方法
  7. 那些年我们写过的三重循环----CodeForces 295B Greg and Graph 重温Floyd算法
  8. Java面向对象 GUI 补录
  9. Xposed快速hook关键点
  10. halcon 模板匹配(最简单)
  11. js_base_note
  12. 48-设置tomcat虚拟路径的两种方法(Eclipse、tomcat、IDEA)
  13. DAY 13 开放封闭原则
  14. PostgreSQL&PostGIS完全安装
  15. C编程技巧资源
  16. 【Kibana】Kibana入门教程
  17. Java中3种代理总结(示例代码见之前文章)
  18. java基础47 装饰着模式设计
  19. CODEVS 4655 序列终结者-splay(区间更新、区间翻转、区间最值)
  20. Linux内核同步 - Read/Write spin lock

热门文章

  1. Linux 线程管理
  2. JavaOO面向对象中的注意点(三)
  3. 安装 pywin32-218.win32-py2.7.exe 报错python version 2.7 required,which was not found in the registry解决方案
  4. [spring源码学习]七、IOC源码-Context
  5. Greenplum查询计划分析
  6. iOS 时间的处理
  7. Canvas 最佳实践(性能篇)
  8. placeholder js简单实现
  9. Spring mvc Security安全配置
  10. python实现最简单的计算器功能源码