Роль преобразователей значения
Классы преобразователя значения используются для преобразования значения объекта некоторым способом. Это особенно полезно при использовании привязки Какао и создания привязки между свойством модели контроллера и элементом пользовательского интерфейса или другим объектом контроллера. При помощи встроенных преобразователей значения или создания пользовательских преобразователей значения, можно далее сократить сумму кода связующего звена, требуемого приложением.
Например, если свойство модели является a, часто необходимо отключить элемент пользовательского интерфейса nil
значение. Вместо того, чтобы писать возвращающийся метод YES
если свойство nil
, Вы указываете, что обязательное использование “не является нолем” преобразователь. Преобразователь действует как «посредник», обеспечивая a YES
оцените элементу пользовательского интерфейса, если свойство nil
.
Трансформация значения сразу сделана, прежде чем значение передается элементу пользовательского интерфейса setObjectValue:
метод. Аналогично, обратная трансформация применяется, прежде чем значение в пользовательском интерфейсе установлено в модели. Посмотрите Поток сообщений Привязки в Привязке Какао, Программируя Темы для подробного описания того, когда преобразователи значения будут применены в контексте привязки Какао.
Все преобразователи значения являются подклассами NSValueTransformer
. В дополнение к обеспечению абстрактных методов для подклассов, NSValueTransformer
класс поддерживает отображение имен преобразователя значения и соответствующих объектов преобразователя значения. Это имя используется в Интерфейсном Разработчике для указания преобразователя значения, использующегося для привязки. Вы регистрируете экземпляры своих пользовательских преобразователей значения для представления их, позволив им использоваться привязкой Какао в Интерфейсном Разработчике.
Преобразователь значения может быть обратимым, быть в состоянии преобразовать значение в новое значение, и назад снова. Обратимый преобразователь может считаться «чтением-записью», он преобразовывает исходное значение свойства, но также возвратит любые изменения, внесенные в преобразованное значение. Необратимый преобразователь «только для чтения», только в состоянии отразить изменения в исходном свойстве.