美文网首页
OC中协议和通知的区别

OC中协议和通知的区别

作者: Skipper_1_422 | 来源:发表于2016-08-25 14:24 被阅读0次

区别一:delegate针对one-to-one关系,并且reciever可以返回值给sender;notification 可以针对one-to-one/many/none,reciever无法返回值给sender;所以,delegate用于sender希望接受到reciever的某个功能反馈值,notification用于通知多个object某个事件。
  区别二:
  Delegate:消息的发送者(sender)告知接收者(receiver)某个事件将要发生,delegate同意然后发送者响应事件,delegate机制使得接收者可以改变发送者的行为。通常发送者和接收者的关系是直接的一对多的关系。
  Notification:
消息的发送者告知接收者事件已经发生或者将要发送,仅此而已,接收者并不能反过来影响发送者的行为。通常发送者和接收者的关系是间接的多对多关系。
  区别三:效率肯定是delegate比nsnotification高。
区别四:delegate方法比notification更加直接,最典型的特征是,delegate方法往往需要关注返回值,也就是delegate方法的结果。
  delegate用于声明委托。Notification用于通告。委托是一种引用类型,引用类型的 Shared 方法或对象的实例方法。任何具有匹配参数类型和返回类型的过程均可用来创建此委托类的实例。然后就可以通过委托实例来调用过程。

相关文章

  • OC中协议和通知的区别

    区别一:delegate针对one-to-one关系,并且reciever可以返回值给sender;notific...

  • OC中的通知

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

  • 按位或操作

    1. OC 和 Swift 中的区别 OC中定义Options Swift 中定义Options ** 在Swif...

  • 通知 Alamofire

    发通知swift中发通知的函数原型是这样的: 除了name之外,其他参数跟OC的没什么区别,name的主要作用就是...

  • iOS swift-字符串

    OC和Swift中字符串的区别 在OC中字符串类型时NSString,在Swift中字符串类型是String OC...

  • python网络编程

    TCP协议和UDP协议的区别 TCP/IP协议是一个协议簇,里面包含了很多个协议,UDP只是其中的一个。 TCP协...

  • 知识汇总

    OC中instancetype与id的区别 区别1: 在ARC(Auto Reference Count)环境下:...

  • OC与swift的区别

    OC与Swift的区别一(文件结构) OC与Swift的区别一(常量、变量、运算符) OC与Swift的区别三(条...

  • 9.循环使用(while循环)

    OC中while循环: swift中while循环和OC区别:1> while后面()可以省略2> 没有非0(ni...

  • Kotlin协程使用

    目录 协程的用法 协程同步异步请求与Rxjava,原生写法的区别与优势 对于协程的理解 1.协程的用法 在安卓中添...

网友评论

      本文标题:OC中协议和通知的区别

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