所以我已经阅读了很多关于委托(delegate)的解释和实践,但我似乎仍然不明白,我有具体的问题,我希望得到一些有见地的简单答案。
为什么在实例方法上使用委托(delegate)?在
UIAlertView
为什么不直接制作– alertView:clickedButtonAtIndex:
将在我的UIAlertView
上调用的实例方法实例?委托(delegate)属性是什么?为什么我必须创建委托(delegate)属性并使用奇怪的语法定义它
@property (nonatomic, strong) id <ClassesDelegate> delegate
delegate 和 protocol 是硬币的两个面吗?
我什么时候知道应该在我的应用中实现委托(delegate)而不是直接调用?
委托(delegate)在 Swift 中的使用是否同样广泛和重要?
首先调用什么?为什么?类中谁让自己成为委托(delegate)的方法?还是在声明它的类中的委托(delegate)方法本身?
感谢您抽出宝贵的时间来解决这个问题,我迫切希望为我的问题寻找一个清晰而有用的答案,请随意举例或涵盖一些相关主题!
最佳答案
委托(delegate)的优点是依赖倒置。
通常代码在运行时调用依赖的方向上有一个编译时依赖。如果是这种情况,UITableview
类将在编译时依赖我们的代码,因为它会调用我们的代码。通过使用委托(delegate),这是相反的,我们的代码在编译时依赖于 UITableview
类,但 UITableview
类在运行时调用我们的代码。
这涉及到成本:我们需要设置委托(delegate),UITableview 必须在运行时检查委托(delegate)方法是否已实现。
注意:当我说 UITableview
时,我包括了 UITableviewDelegate
和 UITableviewDatasource
。
关于ios - 我需要了解为什么 Objective-C 中的委托(delegate)如此重要,是什么让它如此特别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25826840/