2013-04-08 68 views
-1

奇怪的语法,但我想问一下,如果我没有KVO(关键价值观察)的情况下,应用程序不能做某些事情/功能?我可以不用KVO吗?

谢谢

+0

而KVO代表... – Undo 2013-04-08 20:45:39

+0

@ErwaySoftware键值观察。值改变时的通知系统。查看:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html。我也不知道,必须查看它。 – 2013-04-08 20:46:43

回答

1

你几乎从不需要KVO。
只有当你需要一些特殊的东西,或者想要绕过苹果sw设计。
对于这种情况,你会发现演示代码,所以不用担心KVO太多。

+1

虽然我同意你很少需要KVO,但随着应用程序复杂性的增加,这是一个很棒的工具。我不会说它是“绕过苹果sw设计”的有用之处,因为如果你这样做,你可能做得不对。这是Apple提供的一种非常有用的自动通知技术。正确使用时,它是有效的,非常有用。但我同意一个新的开发人员通常不需要利用这个有点高级的功能。但是如果你正在编写你自己的setter(反正你很少这样做),我建议你调用KVO方法。 – Rob 2013-04-08 21:04:25

5

Key Value Observing提供的功能和行为对于开发人员来说是独一无二的,对于开发人员来说当然是有用的,在相同的情况下可以窥见不透明的值。例如,如果您想知道Cocoa中动画的精确持续时间,这是一个黑盒子(例如,键盘公开动画持续时间),KVO是我知道您可以建立的唯一途径那。

除此之外,它是涉及数据编程应用程序的有用模式(参见图)。因此,它是开发人员工具箱中的又一个工具。

没有它你能得到吗?当然。有许多工具可以不用,而且这个工具需要一点点努力才能将头部包裹起来。但是,你应该避免它?不,我不这么认为 - 你为什么?

+1

+1,尽管KVO并非Objective-C独有! – JustSid 2013-04-08 20:57:15

+0

好点@JustSid - 我会相应地更新答案。 – isaac 2013-04-08 21:02:07