如何在Objective-C中实现多级委托

Kas*_*sem 3 iphone objective-c ios ios5

我有4个班级(观点):
A,B,C和D.

A类呼叫B,B呼叫C,C呼叫D:
A> B> C> D.

在类DI中已经实现了委托协议,我想在A类中捕获委托事件.

我怎样才能做到这一点?

Dru*_*erB 10

有多种方法可以实现这一目标.在你的情况下最好的取决于情况.以下是一些想法:

  1. 您可以在所有这些类中实现委托协议,并简单地将其传递给该行.
  2. 您可以添加一个ivar从A访问D类并直接传递(意大利面代码的危险!)
  3. 如果有可能你可以改变你的实现,那么你只能在A中实现委托并在那里处理它.
  4. 最后的手段可能是使用NSNotifications(不要与NSUserNotificationsMountain Lion 混淆).在A类中,您向默认通知中心发布通知,在D类中注册此通知并根据需要进行处理.只有在没有其他工作的情况下才使用这种方法,因为这会导致更糟糕的代码.