我不认为这是一个非常糟糕的问题。许多人对问题的“最佳”方面做出了负面回应。一个简单的改写可能是“什么情况最适合每种对象间通信”。
总之,常见的如下:
- 直接调用(google Objective-C语言方法) - 大多数
共同的,最直接的,紧密合作的对象。
- KVO(谷歌“Objective-C KVO”) - 用于观察特定物体的特定物体
另一种价值观的变化。
- NSNotification(谷歌“NSNotification”) - 任何/许多感兴趣的对象,以观察另一个对象想要广播的任何事件
- 委托(谷歌“Objective-C委托”) - 当一个对象需要由其他一些对象代表它完成工作时,它会发布一个委托协议。其他对象可以实现此协议(“符合它”),然后被指定为委托。 (在我看来,这个人过度使用)
有很多关于如何实现每种内容的网络资料(详情请谷歌)。