![]() |
1
1
忘记设计模式吧。如果有一个设计模式,那么它就是“委托设计模式”。 UITableView可以以无数种不同的方式显示数据。数据可以来自无数个不同的地方。UITableView无法处理所有这些。 这就是为什么应用程序提供一个 代表 对象,该对象为UITableView提供数据。代理必须能够告诉UITableView表中有多少节,每个节中有多少行,每行的数据,每个节的页眉和页脚。有了这些知识,UITableView就可以完成它的工作。如果没有这个委托,您将不得不创建UITableView的很多子类,这很痛苦。 但是没有UITableViewDelegate类,因为这样您就必须创建UITableViewDelegate的许多子类,并且面临着与数百万子类完全相同的问题。相反,有一个 协议 。协议定义委托需要支持哪些方法,然后将这些委托方法添加到理解数据的某个类中。 委托模式的工作原理是:创建一个完成这项艰巨工作的类。但是,为了使类能够适应不同的情况,您为它提供了一个委托对象,该对象实现了不同情况之间的差异。委托对象通常是一个完全不相关的类的实例,委托方法已添加到该类中。 |
![]() |
Noah H · 如何通过终端或Swift禁用三指轻拍手势? 6 年前 |
![]() |
Dmitry Serov · 货币数字格式-数字为整数时省略分数部分 6 年前 |
![]() |
Duny · ObjC日期始终返回2017年12月25日 6 年前 |
![]() |
Jan Kaiser · NSButton不调用其操作 7 年前 |