在同一个 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
这种方法很难(甚至不可能)为多个委托对象提供服务。
我有一个 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
这种方法很难(甚至不可能)为多个委托对象提供服务。