Регистрация преобразователя значения

При создании привязки в Интерфейсном Разработчике можно указать имя преобразователя значения, использующегося в качестве «посредника». Для Вашего пользовательского значения преобразователь возражает, чтобы использоваться этим способом, они должны сначала быть зарегистрированы по имени.

Регистрация пользовательского преобразователя значения

NSValueTransformer класс поддерживает отображение имен преобразователя значения и соответствующий объект преобразователя значения. Вместо того, чтобы регистрировать подкласс, отдельные экземпляры NSValueTransformer подклассы регистрируются. Это позволяет преобразователь значения, обеспечивающий обобщенную функциональность, которая будет зарегистрирована многократно, с различными параметрами, для различных имен. Например, Вы могли записать MultiplicationTransformer и указать число, использующееся в качестве множителя, когда инициализируется экземпляр. Отдельные экземпляры могли быть зарегистрированы как «MultiplyByTwoTransformer», «MultiplyByTenTransformer», и т.д.

Пример в Перечислении 1 регистрируется, экземпляры Фаренгейта к преобразователю значения Цельсия создали в письменной форме Пользовательский Преобразователь Значения с помощью имени «FahrenheitToCelsiusTransformer».

Перечисление 1  , Регистрирующее Фаренгейта к преобразователю значения Цельсия

FahrenheitToCelsiusTransformer *fToCTransformer;
 
// create an autoreleased instance of our value transformer
fToCTransformer = [[[FahrenheitToCelsiusTransformer alloc] init]
                                                      autorelease];
 
// register it with the name that we refer to it with
[NSValueTransformer setValueTransformer:fToCTransformer
                                forName:@"FahrenheitToCelsiusTransformer"];

Преобразователи значения обычно регистрируются классом делегата приложения, в ответ на получение a initialize: сообщение класса. Это позволяет регистрации происходить рано в процессе запуска приложения, обеспечивая доступ к преобразователям значения, поскольку загружаются файлы пера.

Доступность в интерфейсном разработчике

Ваш NSValueTransformer подклассы автоматически не перечислены в Интерфейсном инспекторе привязки Разработчика. При проверке привязки можно ввести имя, в котором регистрируется преобразователь значения, но функциональность не будет присутствовать в тестовом режиме Интерфейсного Разработчика. Когда Ваше приложение будет скомпилировано и будет работать, преобразователь будет использоваться.