четверг, 23 апреля 2009 г.

23.04.09. Key-Value.

Key-Value Mechanisms

Существуют 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.

Комментариев нет:

Отправить комментарий