Регистрация преобразователя значения
При создании привязки в Интерфейсном Разработчике можно указать имя преобразователя значения, использующегося в качестве «посредника». Для Вашего пользовательского значения преобразователь возражает, чтобы использоваться этим способом, они должны сначала быть зарегистрированы по имени.
Регистрация пользовательского преобразователя значения
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
подклассы автоматически не перечислены в Интерфейсном инспекторе привязки Разработчика. При проверке привязки можно ввести имя, в котором регистрируется преобразователь значения, но функциональность не будет присутствовать в тестовом режиме Интерфейсного Разработчика. Когда Ваше приложение будет скомпилировано и будет работать, преобразователь будет использоваться.