iOS 中对象之间有哪些通信方式


  • delegate:代理是一种设计模式,它是通过被代理者定义代理协议委托代理者实现协议,用于两个对象间的通信交互。在 IOS 中 delegate 主要用于视图与使用对象之间的通信交互,delegate 的效率是最高的,典型的特就是它有返回值。

  • block:block 类似与函数,可作为参数进行传递用于回调,block 可以定义在方法里,函数不能。block 语法简单,写在方法里可以访问局部变量可以使代码更加的紧凑,结构化。相对于 delegate,block 不用建立代理协议,使用简单。

  • 通知:NSnotification 一个中心对象注册和发送通知,所用的其他的对象都可以收到通知。

  • KVC:键-值编码是用于间接访问对象属性的机制,并不需要调用 set 或者 get 方法访问变量,是通过 set value for key 进行间接访问实例变量。

  • 􏱊􏱋􏱢􏱈􏰌􏰀􏱊􏱋􏰘􏰤􏰕􏱘􏱣􏱤KVO:​键值观察模式,被观察者添加观察者,被观察者使用KVC键值编码来修饰它的实例变量,当被观察者发生改变时,观察者就能侦听到被观察者改变的事件,从而做出相应。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,328评论 30 472
  • Block 1.block是带有局部变量的匿名函数。 Block语法的BN范式: ^ 返回值类型 参数列表 表达...
    火焰与柠檬阅读 4,005评论 0 1
  • 设计模式 1.delegate和notification什么区别,什么情况使用? 2.描述一下KVO和KVC。 K...
    丶逐渐阅读 5,941评论 3 2
  • OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装、继承、多态。它既具有静态语言的特性...
    克鲁德李阅读 3,233评论 0 0
  • 文/Jack_lin(简书作者)原文链接:http://www.jianshu.com/p/5d2163640e2...
    笔笔请求阅读 3,587评论 0 0