区别一: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 方法或对象的实例方法。任何具有匹配参数类型和返回类型的过程均可用来创建此委托类的实例。然后就可以通过委托实例来调用过程。
一般来说呢 delegate是两个类之间的关系,通知就不同了,可以一对多,也可以多对一,还可以多对多,就是一个发布者一个监听者,一个发布者多个监听者,多个发布者多个 多个监听者 代理需要有协议 要声明协议 实现协议中方法 设置代理 通知需要设置通知中心 设置发布者和监听者