我有 4 个类(视图):
A、B、C 和 D
A 类调用 B,B 类调用 C,C 类调用 D:
A > B > C > D
在类 DI 中实现了一个委托协议,我想在类 A 中捕获委托事件。
我怎样才能做到这一点?
我有 4 个类(视图):
A、B、C 和 D
A 类调用 B,B 类调用 C,C 类调用 D:
A > B > C > D
在类 DI 中实现了一个委托协议,我想在类 A 中捕获委托事件。
我怎样才能做到这一点?
有多种方法可以实现这一目标。在你的情况下什么是最好的取决于具体情况。这里有一些想法:
NSNotifications
(不要与NSUserNotifications
山狮混淆)。在您的 A 类中,您将通知发布到默认通知中心,在 D 类中,您注册到此通知并根据需要处理它。只有在没有其他方法的情况下才使用这种方法,因为这可能会导致更糟糕的代码。将 ClassD 成员委托分配为 ClassA 对象。
让我解释
如果您在 ClassD 中有一个 UITableView,并且想要触发 ClassA 中的 ClassD tableView Delegates,那么让 tableView 代理分配为 ClassA 对象并在 ClassA 中实现所有 UITableView 代理。
例如:ClassD_tableView.delegate = classAObj;
注意:在 Class A 中实现 ClassD tableView 委托方法,不要从 ClassD 内部创建 ClassA 的新对象。您可以通过传递参数或使用 UIResponder 来获取 ClassD 中的父类 A。