Mantleでデータの変換・抽出を行う

マッピングライブラリのMantleですが、マッピングだけでなくオブジェクト変換時の要素の変換・抽出にも利用可能です。

例えば、名前データの入ったJSONを受け取り、名前と頭文字のキャッシュを持つオブジェクトに変換する場合、以下の様に実装ができます。

public class func JSONKeyPathsByPropertyKey() -> [NSObject : AnyObject]! {
    return [
        "name" : "name",
        "initialChar" : "name",
    ]
}
// 変換を制御するには、プロパティ名JSONTransformerという名前のクラスメソッドを実装する
public class func initialCharJSONTransformer() -> NSValueTransformer {
    return MTLValueTransformer(block: { (name: AnyObject!) -> AnyObject! in
        if let name:NSString = name as? NSString {
            let initialChar = name.substringToIndex(1)
            return initialChar
        } else {
            return ""
        }
    })
}

参考