美文网首页
OC基础-(三)代理、通知

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

作者: 码小六 | 来源:发表于2018-10-27 17:52 被阅读0次

代理(Delegate)

Q: 什么是代理?

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

下面简述一下代理的工作流程

Xnip2018-10-19_11-26-58.png

这里我们需要知道一下,协议中可以定义哪些内容?协议可以通过@required定义必须实现的代理方法,通过@optional定义可选方法

  • 成员属性
  • 方法

在使用代理的时候,存在一个循环引用的问题,当代理,协议,委托都通过强引用形成一个闭环,则会造成内存泄露的问题,此时我们通常会让委托方弱引用指向代理方来避免循环引用:

Xnip2018-10-19_11-32-18.png

NSNotification

这里先一下通知(NSNotification)的特点

  • 使用观察者模式来实现的用于跨层传递消息的机制
  • 传递方式为一对多

通过一幅图看看通知的大致实现机制

Xnip2018-10-19_11-40-32.png

相关文章

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

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

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

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

  • 通知,Block,代理

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

  • OC扩展、代理、通知

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

  • 基础 (二十) : 通知/代理

    通知中心(NSNotificationCenter) 通知(NSNotification) 一个完整的通知一般包含...

  • OC语言之代理与通知

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

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

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

  • OC中的通知

    前言 :这几天参加面试,基础方面问的比较多的就是代理、通知、block、这些。有个面试官还问到了代理和通知的区别,...

  • iOS面试之OC模块

    OC oc内容如下:1.分类2.关联对象3.扩展4.代理5.通知6.KVO7.KVC8.属性关键字 1.分类 分类...

  • swift 反向传值(通知,代理,闭包)简单使用

    有过OC开发经验的小伙伴都清楚,常用的反向传值的方法就是通知,代理和block三种方法。这里我也不必多说,下边主要...

网友评论

      本文标题:OC基础-(三)代理、通知

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