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 *)
transformer
forName:(NSString *)name
Параметры
transformer
Преобразователь для регистрации.
name
Имя для
transformer
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.3 и позже.
См. также
-
Возвращает преобразователь значения, идентифицированный данным идентификатором.
Объявление
Swift
init?(forName
name
: 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() -> Bool
Objective C
+ (BOOL)allowsReverseTransformation
Возвращаемое значение
YES
true
если получатель поддерживает обратные трансформации значения, иначеNO
false
.Значение по умолчанию
YES
true
.Обсуждение
Подклассы должны переопределить этот метод для возврата
NO
false
если они не поддерживают трансформации значения реверса.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.3 и позже.
-
Возвращает класс значения, возвращенного получателем для прямой трансформации.
Объявление
Swift
class func transformedValueClass() -> AnyClass
Objective 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
возвратыNO
false
; иначе это вызовет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 ;
Константы
-
NSNegateBooleanTransformerName
NSNegateBooleanTransformerName
Этот преобразователь значения инвертирует булево значение, преобразовывая
YES
true
кNO
false
иNO
false
кYES
true
.Этот преобразователь обратим.
Доступный в OS X v10.3 и позже.
-
NSIsNilTransformerName
NSIsNilTransformerName
Этот преобразователь значения возвраты
YES
true
если значениеnil
.Этот преобразователь не обратим.
Доступный в OS X v10.3 и позже.
-
NSIsNotNilTransformerName
NSIsNotNilTransformerName
Этот преобразователь значения возвраты
YES
true
если значение не -nil
.Этот преобразователь не обратим.
Доступный в OS X v10.3 и позже.
-
NSUnarchiveFromDataTransformerName
NSUnarchiveFromDataTransformerName
Этот преобразователь значения возвращает объект, создаваемый путем попытки разархивировать данные в
NSData
объект передал как значение.Обратная трансформация возвращается
NSData
экземпляр, создаваемый путем архивации значения. Архивный объект должен реализоватьNSCoding
протокол с помощью последовательной архивации, чтобы быть разархивированным и заархивированным с этим преобразователем.Доступный в OS X v10.3 и позже.
-
NSKeyedUnarchiveFromDataTransformerName
NSKeyedUnarchiveFromDataTransformerName
Этот преобразователь значения возвращает объект, создаваемый путем попытки разархивировать данные в
NSData
объект передал как значение. Архивный объект должен быть создан с помощью включенной архивации, чтобы быть разархивированным и заархивированным с этим преобразователем.Обратная трансформация возвращается
NSData
экземпляр, создаваемый путем архивации значения с помощью, включил архивацию. Архивный объект должен реализоватьNSCoding
протокол с помощью включил архивацию, чтобы быть разархивированным и заархивированным с этим преобразователем.Доступный в OS X v10.5 и позже.
-