了解iOS中的KVO

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

为了被视为符合KVO标准的特定财产,一个class级必须确保以下内容;

  1. 该类必须符合“确保KVC合规性”中指定的属性的键值编码。

  2. 该类必须允许属性的自动观察者通知,或者实现对属性的手动键值观察。

谁能给出更具体的例子来使这个更清楚? 谢谢

请参阅确保键值观测编程指南中的KVO兼容性自动对比手动支持部分。 合规性基本上是通过遵循方法和/或ivars的命名规则来实现的。

在我的经验中,KVO倾向于“正常工作”,这很好。

当你使用@property标签来创buildgetters / setter时 ,魔法是自动连线的,用于一对一的关系,你只需要addObserver …并实现observe …方法来捕获更新。

真正的挑战是了解如何实现“多对多关键值合规性”以使可变集合或数组工作。 这里的文档是关键和理解,有两个部分…索引集合和无序集合。 这真的帮助我明白如果我的@property是一个NSMutableArray,你需要看看索引区域中的方法,如果你的@property是一个NSMutableSet,你需要看看无序的文档。

即使您不打算使用它们,也需要实现必需的方法。