Понимание КВО в iOS - PullRequest
       10

Понимание КВО в iOS

11 голосов
/ 27 января 2011

Относительно "Обеспечения соответствия КВО", есть официальное определение, которое кажется трудным для понимания

Чтобы считаться KVO-совместимый для конкретной собственности, класс должен обеспечить следующее;

  1. Класс должен кодироваться по значению ключа соответствует для собственности как указано в Обеспечении соответствия KVC.

  2. Класс должен разрешать автоматический уведомления наблюдателя для собственности или реализовать руководство Наблюдение за значением ключа для объекта.

Кто может привести более конкретные примеры, чтобы прояснить это? Спасибо

Ответы [ 2 ]

8 голосов
/ 27 января 2011

Взгляните на Обеспечение соответствия KVO в разделе «Автоматическая и ручная поддержка» в Руководстве по программированию наблюдения значения ключа. Соответствие в основном достигается путем соблюдения соглашений об именах методов и / или ivars.

По моему опыту, КВО имеет тенденцию «просто работать», что приятно.

1 голос
/ 24 декабря 2012

Когда вы используете теги @property для создания геттеров / сеттеров магия автоматически подключается к отношениям To-One, и вам нужно только добавить addObserver ... и реализовать метод наблюдений ..., чтобы пойматьобновления.

Реальная проблема заключается в понимании того, как реализовать соответствие значения ключа To-Many для обеспечения работы изменяемого набора или массива.Документация здесь является ключевой и понимание того, что есть два раздела ... Индексированные коллекции и Неупорядоченные коллекции.Это действительно помогло мне понять, что если мой @property - это NSMutableArray, вам нужно посмотреть на методы в области Indexed, а если ваш @property - это NSMutableSet, вам нужно взглянуть на неупорядоченную документацию.Обязательные методы, которые вам необходимо реализовать, даже если вы не планируете их использовать.

...