Существуют Key-value binding, key-value coding, and key-value observing.
- KVB управляет привязками объектов друг к другу.
- KVC c помощью реализации неформального протокола NSKeyValueCoding позволяет получить значение свойства по его имени через специальный метод этого протокола.
- KVO c помощью реализации неформального протокола NSKeyValueObserving позволяет объектам регистрироваться в качестве наблюдателей за другим объектом. Наблюдаемый объект автоматически уведомит наблюдателей при изменении своих свойств.
Для того, чтобы сделать свойства объекта совместимыми с этой техникой:
- в случае атрибутов или отношений 1-к-1 нужно для setter-а заводить метод setKey, а для getter-а - Key,
- в случае свойства как отношения 1-ко-многим, т.е. коллекций в объекте, нужно getter-у давать имя свойства и если getter не должен возвращать изменяемую коллекцию, то нужно реализовать insertObject:inKeyAtIndex: and removeObjectFromKeyAtIndex: из NSKeyValueCoding.
Для автоматического KVO объект должен удовлетворять KVC.
Комментариев нет:
Отправить комментарий