我有4个 class (观看次数):
A,B,C和D

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

在D类中,我实现了一个委托协议,我想捕获A类中的委托事件。

我该如何实现?

最佳答案

有多种方法可以实现这一目标。根据您的情况,哪种情况最好?这里有一些想法:

  • 您可以在所有这些类中实现委托协议,并将其简单地传递给下一行。
  • 您可以添加一个ivar来从A访问类D并将其直接传递(spaghetti code的危险!)
  • 如果可能,您可以更改实现,以便仅在A中实现委托并在那里进行处理。
  • 不得已使用NSNotifications(不要与Mountain Lion中的NSUserNotifications混淆)。在A类中,您将通知发布到默认的通知中心,在D类中,您注册该通知并根据需要进行处理。尽管没有其他效果,请仅使用此方法,因为这可能导致更糟糕的代码。
  • 10-07 19:55
    查看更多