iOS中目标操作和键值观察器之间的区别

时间:2015-08-19 13:35:53

标签: ios design-patterns

两者有什么区别?对我来说,两者看起来都在做同样的事情,即通知事件观察者一些事件。

我阅读了这篇文章http://www.raywenderlich.com/46988/ios-design-patterns关于上述两种事件处理技术的实际模式,但未能理解命令模式与观察者模式的不同之处,或者我遗漏了什么。

2 个答案:

答案 0 :(得分:1)

我对他们的理解是下一个: 在目标操作的情况下,您有通知中心,通过它可以在两个类之间传递信息。您有一个类将通知发送到通知中心,通知中心将广播信息,第二个类让观察者监听任何符合其条件的广播。

在KVO的情况下,你有一个能够观察其中一个属性变化的物体。 因此,对于KVO,没有人发布任何通知。希望这至少可以解决一些问题。

答案 1 :(得分:1)

在target-action中,控制事件的对象被告知从该事件触发的内容。对于iOS开发人员来说,最常见的用途不是NSInvocation,而是Interface Builder。发件人通常是UIControl。

在NSNotification中,向正在收听特定事件的人广播通知。这些通知非常通用,可以包含任何信息。听众可能会或可能不会关心发件人是谁。

在KVO中,听众会关注特定对象的特定属性。