美文网首页iOS面试总结
OC语言之代理与通知

OC语言之代理与通知

作者: Jimmy_L_Wang | 来源:发表于2019-06-14 21:59 被阅读0次

代理

  • 准确的说是一种软件设计模式代理模式
  • iOS当中以@protocol形式体现。
  • 传递方式一对一

代理的工作流程

协议中除了方法,还可以定义属性

代理的工作流程.png

一般声明为weak以规避循环引用。

通知(NSNotification)

  • 使用观察者模式来实现的用于跨层传递消息的机制。

  • 传递方式为一对多

通知.png

如何实现通知机制?

NSNotificationCenter系统类中可能会维护一个Notification_Map,其中的key值是notificationName,value是一个Observers_List(监听者列表),所以列表包含通知接收的观察者,其次还要包含关于观察者调用的方法,比如收到通知之后,观察者的回调方法是哪个。所以列表中包括观察者对象,以及回调方法的相关数据信息

通知机制.png

代理与通知的区别

代理是由代理模式实现的,其传递方式为一对一,通知是由观察者模式实现的,其传递方式是一对多

相关文章

  • OC语言之代理与通知

    代理 准确的说是一种软件设计模式代理模式 iOS当中以@protocol形式体现。 传递方式一对一 代理的工作流程...

  • OC扩展、代理、通知

    二、扩展 1.一般用扩展做什么? 声明私有属性,声明方法(没什么意义),声明私有成员变量 2.扩展的特点 编译时决...

  • 通知,Block,代理

    OC中经常要用到一些事件和参数的传递,通常有三种做法:通知 代理 Block 通知可以一对多,代理 通知 Blo...

  • OC基础-(三)代理、通知

    代理(Delegate) Q: 什么是代理? 准确的说代理是一直软件设计模式(代理模式) iOS中以@protoc...

  • OC知识点整理-(零)内容概要

    我们在OC中基础中,尝尝会被问到下面几个基础方面的问题。 OC基础 Category 关联对象 代理,通知 KVO...

  • OC与swift的数据传输

    简介 该项目主要介绍了oc与swift之间、swift内部几种常见的传值方式(属性传值、代码块传值、代理传值、通知...

  • 代理与通知

    代理 代理设计模式的作用: 1.A对象监听B对象的一些行为,A成为B的代理 2.B对象想告诉A对象一些事...

  • iOS之代理笔记

    代理的基本使用 代理是一种通用的设计模式,在iOS中对代理设计模式支持的很好,有特定的语法来 实现代理模式,OC语...

  • swift中的protocol和OC中protocol的区别

    OC中 主要是应用到了代理模式中,多用于跨类传值,回调通知,如UITableView的代理 swift中 遵守pr...

  • __bridge的用法

    __bridge作为OC与C语言之间的桥接符号使用, 简单的用法:

网友评论

    本文标题:OC语言之代理与通知

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