<分区>
Possible Duplicate:
Difference between protocol and delegates?
Protocol 和 Delegates 之间有什么区别吗?
如果它们相同,为什么我们需要两个做同样的事情?
何时使用委托(delegate),何时使用协议(protocol)。
我是 Objective-C 和 Iphone 编程的新手。所以请多多包涵。
<分区>
Possible Duplicate:
Difference between protocol and delegates?
Protocol 和 Delegates 之间有什么区别吗?
如果它们相同,为什么我们需要两个做同样的事情?
何时使用委托(delegate),何时使用协议(protocol)。
我是 Objective-C 和 Iphone 编程的新手。所以请多多包涵。
最佳答案
协议(protocol)和委托(delegate)是两个相关但不同的概念:
一方面,协议(protocol) 声明可以由任何类实现的方法。据说这些类符合协议(protocol)。它们就像 Java 中的接口(interface)。协议(protocol)可以是 formal or informal :
正式协议(protocol)使用 @protocol
声明阻止。
可以根据 @protocol
实现非正式协议(protocol)阻止所有方法为 @optional
或类别为 NSObject
.
另一方面,委托(delegate) 是一种设计模式,通过该模式,一个对象有机会对另一个对象的变化使用react或影响其行为。基本思想是让两个对象协调解决一个问题,同时最小化这两个对象之间的耦合并避免子类化。子类化在子类与其父类(super class)之间建立了紧密的耦合,而委托(delegate)则创建了一种基于匿名对象的松散得多的关系。
此模式通常通过协议(protocol)的方式实现,或者换句话说,委托(delegate)通常是符合协议(protocol)的匿名对象。
关于iphone - 委托(delegate)与协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6361958/
相关文章:
iphone - Objective-C 和 ARC : Why value stored to during its initialization is never read?
objective-c - 具有 SIP 概念的 iOS 应用程序可与服务器连接
iphone - UIImageView 动画未显示在 View 上
objective-c - UINavigationController 可以有多少个按钮
ios - Core Data Managed Object 无法保存上下文(错误 134030)
iphone - 为什么 atos 命令无法为我的 iOS 崩溃日志找到符号?