【发布时间】:2016-07-11 03:47:08
【问题描述】:
我了解如何对已存在的 iOS 对象使用委托。例如,如果我创建了一个 UITableView 的实例,并且我的视图控制器符合 UITableView 委托,我可以实现 UITableView 委托的各种方法。我新创建的表可以接收通知,例如,当调用 didSelectRowAtIndexPath 时。
我的问题是为什么我的表会收到这个特定的委托回调?我的理解是委托只是一个没有实现的方法列表。在我看来,肯定还有很多事情要做。 “幕后”到底发生了什么?
如果我要将所有委托方法重命名为以下内容: - 神秘方法1 - 神秘方法2 -神秘方法3...等 其中一种方法负责在特定索引处设置行的高度。这些方法的另一种方法将负责编辑特定的行。
我读到的关于委托的所有内容都表明委托人与委托人签订了合同。委托承诺实现这些方法。当它发生时,不知何故,一切都正确连接,一切都神奇地工作。什么是我没有看到的魔法?
【问题讨论】:
-
有数以千计的教程解释了委托的工作原理,其中一种随机解释可用,例如here.
标签: ios design-patterns delegates delegation