美文网首页
2-3 通知

2-3 通知

作者: Rumbles | 来源:发表于2019-03-25 10:45 被阅读0次

iOS Notification实现原理

代理

代理是一种软件设计模式 
iOS 中以@protocol 形式体现
传递时一对一 通知时一对多

@require 必须实现【不写 编译器会出现警告】  @optional 可以实现也可以不实现

使用weak 来避免循环引用。

通知

通知底层  其实是通过KVO实现的
KVO 一般是在同一个页面 监听某一个值的变化
通知是多个页面

实现原理:
没有源码 我是这样猜测的:
通过Map表 [字典]。Name对应 将所有添加的通知放入一个数组里面 【有要调用的函数】

然后发通知的时候 我们 循环调用就好 

区别

1. 实现模式不同
通知是通过 观察者模式实现的
代理是通过代理模式实现的

为什么移除通知

iOS8及以前,NSNotificationCenter持有的是观察者的unsafe_unretained指针(可能是为了兼容老版本),这样,在观察者回收的时候未removeOberser,而后再进行post操作,则会向一段被回收的区域发送消息,所以出现野指针crash。而iOS9以后,unsafe_unretained改成了weak指针,即使dealloc的时候未removeOberser,再进行post操作,则会向nil发送消息,所以没有任何问题

iOS10通知(七)--Notification Content Extension

可以实现推送页面的 UI
iOS10添加了 新的推送UI可以添加图片啥的

相关文章

  • 2-3 通知

    iOS Notification实现原理[https://blog.csdn.net/qq_18505715/ar...

  • 红黑树与2-3树详解

    1. 2-3 树1.1 2-3树查找元素1.2 2-3树删除元素删除最小元素删除任意元素1.3 2-3树与AVL ...

  • 李东深入基层开展专题调研

    为贯彻落实《关于在全省开展“大学习、大调研、大改进”的通知》要求,党委副书记、校长李东于4月2-3日深入基层开展专...

  • 官场微小说:关键环节

    市里接到通知,省里有关部门近期将组建检查组,对本市创文工作开展复核。 复核的方式只有一个,随机抽取2-3个社区开展...

  • 换库通知&报考建议:2月18日GMAT换库

    换库通知 自从GMAC宣布取消2-3月份所有的GMAT考试之后,同学们对于换库和寂静也暂时失去了以前的激情(手动滑...

  • 【四】2-3树和红黑树和B树

    2-3树 2-3树是什么 2-3树由二节点和三节点构成绝对平衡的树。 二三树的性质 2-3树是绝对平衡的树(它是一...

  • 减肥打卡2

    2-3

  • 2020-08-04高中生活随笔1

    闺女7月31日被心仪的高中录取。很开心! 8月2-3号通知参加分班考试,7号出成绩,静心等待。 一切都好像渐入佳境...

  • 跟老婆沟通学到的功课

    因为外出没有通知导致老婆对我有意见 1.为老婆和家人更多设身处地的考虑,例如跟候选人讲电话,抓住重点讲2-3分钟,...

  • 001土豆炖鸡

    原料 鸡大腿2-3根、小米辣2-3个、土豆2-3个、花椒、姜、蒜、醋、生抽、鸡精、炖鸡王 步骤 将鸡大腿肉切成小块...

网友评论

      本文标题:2-3 通知

      本文链接:https://www.haomeiwen.com/subject/qefhvqtx.html