理解iOS中的KVO

11

关于“确保 KVO 一致性”,有一些官方定义似乎很难理解。

为了被视为针对特定属性的 KVO 兼容, 类必须确保以下内容:

  1. 该类必须符合如下“确保 KVC 一致性”中规定的 属性 key-value coding 兼容性。

  2. 该类必须允许自动为该属性发送观察者通知,或者实现手动 key-value observing 来监测该属性。

谁能举更具体的例子来使这更加清晰易懂?谢谢。

2个回答

8
请查看Key-Value Observing编程指南中的“自动支持与手动支持”部分,链接如下:Ensuring KVO Compliance。要实现合规性,需要遵循方法和/或实例变量的命名约定。
在我的经验中,KVO通常会“自动运行”,这很好。

7
链接腐败: "Ensuring KVO Compliance" 已移至 http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/KeyValueObserving/Articles/KVOCompliance.html#//apple_ref/doc/uid/20002178-BAJEAIEE - erikprice

1
当你使用@property标签来创建getter / setter时,魔法会自动为To-One关系进行连接,你只需要添加addObserver...并实现observe...方法以捕获更新即可。
真正的挑战在于理解如何实现To-Many键值遵从性以使可变集合或数组工作。 这里的文档是关键,需要了解有两个部分...索引集合和无序集合。这真的帮助我理解,如果我的@property是NSMutableArray,则需要查看索引区域中的方法;如果@property是NSMutableSet,则需要查看无序文档。
即使您不打算使用它们,也需要实现必需的方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接