NSValueTransformer
NSValueTransformer абстрактный класс, использующийся технологией Привязки Какао для преобразования значений от одного представления до другого.
Приложение создает подкласс NSValueTransformer, переопределение необходимых методов для обеспечения требуемой пользовательской трансформации.
Пример
Относительно тривиальный преобразователь значения берет объект типа id и возвращает строку на основе объекта’ s тип класса. Этот преобразователь не обратим, поскольку, вероятно, неблагоразумно преобразовать имя класса в объект. Класс преобразователя значения, который Вы пишете для выполнения этой простой задачи, мог быть похожим:
@interface ClassNameTransformer: NSValueTransformer {}@end@implementation ClassNameTransformer+ (Class)transformedValueClass { return [NSString class]; }+ (BOOL)allowsReverseTransformation { return NO; }- (id)transformedValue:(id)value {return (value == nil) ? nil : NSStringFromClass([value class]);}@end
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.3 и позже.
-
Регистрирует предоставленный преобразователь значения в данном идентификаторе.
Объявление
Swift
class func setValueTransformer(_transformer: NSValueTransformer, forNamename: String)Objective C
+ (void)setValueTransformer:(NSValueTransformer *)transformerforName:(NSString *)nameПараметры
transformerПреобразователь для регистрации.
nameИмя для
transformer.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
См. также
-
Возвращает преобразователь значения, идентифицированный данным идентификатором.
Объявление
Swift
init?(forNamename: String) -> NSValueTransformerObjective C
+ (NSValueTransformer *)valueTransformerForName:(NSString *)nameПараметры
nameИдентификатор преобразователя.
Возвращаемое значение
Преобразователь значения, идентифицированный
nameв совместно используемом реестре, илиnilесли не найденный.Обсуждение
Если
valueTransformerForName:не находит зарегистрированный экземпляр преобразователя дляname, это попытается найти класс с указанным именем. Если соответствующий класс будет найден, то экземпляр будет создаваться и инициализировал использованиеinit:метод и затем автоматически зарегистрированный вname.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
См. также
-
Возвращает массив всех зарегистрированных преобразователей значения.
Объявление
Swift
class func valueTransformerNames() -> [AnyObject]Objective C
+ (NSArray *)valueTransformerNamesВозвращаемое значение
Массив всех зарегистрированных преобразователей значения.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Возвращает булево значение, указывающее, может ли получатель инвертировать трансформацию.
Объявление
Swift
class func allowsReverseTransformation() -> BoolObjective C
+ (BOOL)allowsReverseTransformationВозвращаемое значение
YEStrueесли получатель поддерживает обратные трансформации значения, иначеNOfalse.Значение по умолчанию
YEStrue.Обсуждение
Подклассы должны переопределить этот метод для возврата
NOfalseесли они не поддерживают трансформации значения реверса.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Возвращает класс значения, возвращенного получателем для прямой трансформации.
Объявление
Swift
class func transformedValueClass() -> AnyClassObjective C
+ (Class)transformedValueClassВозвращаемое значение
Класс значения, возвращенного получателем для прямой трансформации.
Обсуждение
Подкласс должен переопределить этот метод для возврата надлежащего класса.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Возвращает результат преобразования данного значения.
Объявление
Swift
func transformedValue(_value: AnyObject?) -> AnyObject?Objective C
- (id)transformedValue:(id)valueПараметры
valueЗначение для преобразования.
Возвращаемое значение
Результат преобразования
value.Реализация по умолчанию просто возвращается
value.Обсуждение
Подкласс должен переопределить этот метод, чтобы преобразовать и возвратить основанное на объектах на
value.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
См. также
-
Возвращает результат обратной трансформации данного значения.
Объявление
Swift
func reverseTransformedValue(_value: AnyObject?) -> AnyObject?Objective C
- (id)reverseTransformedValue:(id)valueПараметры
valueЗначение к обратному преобразованию.
Возвращаемое значение
Обратная трансформация
value.Обсуждение
Реализация по умолчанию повышает исключение если
allowsReverseTransformationвозвратыNOfalse; иначе это вызоветtransformedValue:сvalue.Подкласс должен переопределить этот метод, если они требуют обратной трансформации, которая не является тем же как простым повторным применением исходного преобразования (как имел бы место с отрицанием, например). Например, если преобразователь значения преобразовывает значение в Фаренгейте к Цельсия, этот метод был бы преобразовывать значение от Цельсия до Фаренгейта.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
См. также
-
Следующие именованные преобразователи значения определяются
NSValueTransformer:Объявление
Swift
let NSNegateBooleanTransformerName: NSString! let NSIsNilTransformerName: NSString! let NSIsNotNilTransformerName: NSString! let NSUnarchiveFromDataTransformerName: NSString! let NSKeyedUnarchiveFromDataTransformerName: NSString!Objective C
NSString * const NSNegateBooleanTransformerName; NSString * const NSIsNilTransformerName ; NSString * const NSIsNotNilTransformerName ; NSString * const NSUnarchiveFromDataTransformerName ; NSString * const NSKeyedUnarchiveFromDataTransformerName ;Константы
-
NSNegateBooleanTransformerNameNSNegateBooleanTransformerNameЭтот преобразователь значения инвертирует булево значение, преобразовывая
YEStrueкNOfalseиNOfalseкYEStrue.Этот преобразователь обратим.
Доступный в OS X v10.3 и позже.
-
NSIsNilTransformerNameNSIsNilTransformerNameЭтот преобразователь значения возвраты
YEStrueесли значениеnil.Этот преобразователь не обратим.
Доступный в OS X v10.3 и позже.
-
NSIsNotNilTransformerNameNSIsNotNilTransformerNameЭтот преобразователь значения возвраты
YEStrueесли значение не -nil.Этот преобразователь не обратим.
Доступный в OS X v10.3 и позже.
-
NSUnarchiveFromDataTransformerNameNSUnarchiveFromDataTransformerNameЭтот преобразователь значения возвращает объект, создаваемый путем попытки разархивировать данные в
NSDataобъект передал как значение.Обратная трансформация возвращается
NSDataэкземпляр, создаваемый путем архивации значения. Архивный объект должен реализоватьNSCodingпротокол с помощью последовательной архивации, чтобы быть разархивированным и заархивированным с этим преобразователем.Доступный в OS X v10.3 и позже.
-
NSKeyedUnarchiveFromDataTransformerNameNSKeyedUnarchiveFromDataTransformerNameЭтот преобразователь значения возвращает объект, создаваемый путем попытки разархивировать данные в
NSDataобъект передал как значение. Архивный объект должен быть создан с помощью включенной архивации, чтобы быть разархивированным и заархивированным с этим преобразователем.Обратная трансформация возвращается
NSDataэкземпляр, создаваемый путем архивации значения с помощью, включил архивацию. Архивный объект должен реализоватьNSCodingпротокол с помощью включил архивацию, чтобы быть разархивированным и заархивированным с этим преобразователем.Доступный в OS X v10.5 и позже.
-
