两者有什么区别?对我来说,两者看起来都在做同样的事情,即通知事件观察者一些事件。
我阅读了这篇文章http://www.raywenderlich.com/46988/ios-design-patterns关于上述两种事件处理技术的实际模式,但未能理解命令模式与观察者模式的不同之处,或者我遗漏了什么。
答案 0 :(得分:1)
我对他们的理解是下一个: 在目标操作的情况下,您有通知中心,通过它可以在两个类之间传递信息。您有一个类将通知发送到通知中心,通知中心将广播信息,第二个类让观察者监听任何符合其条件的广播。
在KVO的情况下,你有一个能够观察其中一个属性变化的物体。 因此,对于KVO,没有人发布任何通知。希望这至少可以解决一些问题。
答案 1 :(得分:1)
在target-action中,控制事件的对象被告知从该事件触发的内容。对于iOS开发人员来说,最常见的用途不是NSInvocation,而是Interface Builder。发件人通常是UIControl。
在NSNotification中,向正在收听特定事件的人广播通知。这些通知非常通用,可以包含任何信息。听众可能会或可能不会关心发件人是谁。
在KVO中,听众会关注特定对象的特定属性。