gpt4 book ai didi

ios - 委托(delegate)可以为 2 个委托(delegate)使用单一方法吗?

转载 作者:行者123 更新时间:2023-12-01 19:16:18 26 4
gpt4 key购买 nike

问题是这样的:

我有一个 View Controller Controller 1 这是其他 2 个 Controller 的委托(delegate) Controller 2 Controller 3 .

Controller 2 有一个名为“FOO”的委托(delegate)方法, Controller 3 有同样的方法。

我可以在 中实现一个“FOO”方法吗? Controller 1 如果两个“FOO”方法都告诉委托(delegate)人做同样的事情?

谢谢

沙尼

最佳答案

良好的委托(delegate)设计意味着方法不应具有相同的名称。例如,如果我有两个名为 FooA 的类和 FooB ,两者都执行委派操作 foobar:(BOOL)force ,则委托(delegate)方法名称应如下所示:

- (void)fooA:(FooA*)foo foobar:(BOOL)force;
- (void)fooB:(FooB*)foo foobar:(BOOL)force;

这样,您的“ Controller 1”将能够区分两种委托(delegate)方法。您会在其他委托(delegate)中注意到这一点,例如 UITableView :
- (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath

您可以区分 shouldHighlightRowAtIndexPath源自 UITableView或不同的类(class)。

这么说来,完全有可能在两个委托(delegate)之间共享一个方法名,只是委托(delegate)不能确定委托(delegate)的来源。

关于ios - 委托(delegate)可以为 2 个委托(delegate)使用单一方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13034711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com