在同一个 class Objective-C 上设置多个委托的行为是什么

What's the behaviour of setting multiple delegate on the same class Objective-C

我有一个 ViewController 有大约 5-6 个委托,当我需要初始化委托时,我使用以下代码:

_ExampleModel.delegate = self;

我想知道,如果我需要初始化很多委托,我只需要调用例如:

_ExampleModel.delegate = self;
_ExampleModel2.delegate = self;
_ExampleModel3.delegate = self;

有错吗?

因为我无法理解 class 在调用多个委托时的行为是什么

如果委托协议定义正确,每个委托方法都会收到委托对象,因此您可以进行有根据的选择。

例如,

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

如果您的三个 table 视图具有相同的数据源(或委托),您可以从 tableView 变量知道您正在为哪一个提供服务。

当使用设计糟糕的委托协议时会出现问题,通常是懒惰或未受过教育的开发人员使用。

- (void)didOpen

这种方法很难(甚至不可能)为多个委托对象提供服务。