【发布时间】:2014-11-07 17:28:12
【问题描述】:
所以我已经阅读了很多关于委托的解释和实践,但我似乎仍然不明白,我有一些具体的问题,我很想得到一些有见地的简单答案。
为什么使用委托而不是实例方法?在
UIAlertView中,为什么不直接将– alertView:clickedButtonAtIndex:设置为将在我的UIAlertView实例上调用的实例方法?什么是委托属性?为什么我必须创建委托属性并用奇怪的语法定义它
@property (nonatomic, strong) id <ClassesDelegate> delegate委托和协议是硬币的两个面吗?
我什么时候知道应该在我的应用中实现委托而不是直接调用?
代理在 Swift 中的使用率和重要性一样吗?
首先调用什么,为什么?类中使自己成为委托的方法?还是在声明它的类中的委托方法本身?
感谢您抽出宝贵的时间阅读本文,我迫切希望为我的问题寻找一个清晰而有用的答案,请随时举例或涵盖一些相关主题!
【问题讨论】:
-
委托是一种设计模式。它可以用任何语言实现。它不是 Objective-C 特有的。
-
Delegation 真棒,delegate 不应该是
strong,应该是weak。 -
@maddy 警告历史:虽然在 1993 年左右确实如此,但主要在 Cargile 和 Stroustrup(猜猜谁赢了)之间就两个主要问题就 C++ 的方向进行了辩论。 1. 多重继承 2. 委托。 Cargile 希望它成为 C++ 的一等公民。 Stroustrup 辩称,他从未见过一种既不是玩具,也不是令人费解且难以理解的委托用法。
-
我来自 Windows PC C++ 背景,所以我想到 Objective-C 的委托就像我想到 Window 的回调一样。两种环境中的底层操作系统有时都需要一种“回电”的方式,并且您需要向操作系统提供有关您希望被回电的位置的信息。尝试以这种方式思考它,看看它是否有帮助。起初我很困惑,因为“代表团”这个词似乎在做一些我没有理解的神秘事情。
-
@Gallymon 我理解这个概念,我不太清楚它的技术实现。
标签: ios objective-c swift delegates delegation