我不认为这是一个如此可怕的问题。很多人对这个问题的“最佳”方面做出了否定的反应。一个简单的改写可能是“什么情况最适合每种对象间通信”。
总结起来比较常见的有以下几种:
- 直接调用(google Objective-C 语言方法)- 最常见、最直接、紧密协作的对象。
- KVO (google "Objective-C KVO") - 让一个特定对象观察另一个特定值的变化。
- NSNotification (google "NSNotification") - 让任何/许多感兴趣的对象观察另一个对象想要广播的任何事件
- 委托(谷歌“Objective-C 委托”)——当一个对象需要其他对象代表它完成工作时,它会发布一个委托协议。其他对象可以实现这个协议(“符合它”),然后被分配为委托。(在我看来,这个被过度使用了)
有大量关于如何实现每一个的网络材料(谷歌他们以获取详细信息)。