A block-based API for NSValueTransformer, with a growing collection of useful examples.
NSValueTransformer
, while perhaps obscure to most iOS programmers, remains a staple of OS X development. Before Objective-C APIs got in the habit of flinging block parameters hither and thither with reckless abandon, NSValueTransformer
was the go-to way to encapsulate mutation functionality--especially when it came to Bindings.
NSValueTransformer
is convenient to use, but a pain to set up. Creating even a trivial value transformer required creating of its own subclass, implementing the handful of required methods, and registering a singleton instance by name.
TransformerKit breathes new life into NSValueTransformer
, by making them dead-simple to define and register:
NSString * const TKCapitalizedStringTransformerName = @"TKCapitalizedStringTransformerName";
[NSValueTransformer registerValueTransformerWithName:TKCapitalizedStringTransformerName
transformedValueClass:[NSString class]
returningTransformedValueWithBlock:^id(id value) {
return [value capitalizedString];
}];
TransformerKit also contains a growing number of convenient transformers that your apps will love and cherish:
- Capitalized
- UPPERCASE
- lowercase
- CamelCase
- llamaCase
- snake_case
- train-case
- esreveR* (Reverse)
- Rémövê Dîaçritics (Remove accents and combining marks)
- ट्रांस्लितेराते स्ट्रिंग (Transliterate to Latin)
- PNG Representation*
- JPEG Representation*
- Reversible
Mattt Thompson
TransformerKit is available under the MIT license. See the LICENSE file for more info.