NSNumber的RKValueTransformer从未打过电话

时间:2014-04-13 21:29:48

标签: ios restkit restkit-0.20

我正在尝试创建自定义RKValueTransformer,以便对收到的数据进行转换。我正在使用的API返回没有任何小数点的纬度。我希望能够进行一些处理并自己添加小数点。我可以将“lat”字段映射到实际的类:

  

在keyPath'lat'找到可转换的值。从类'__NSCFNumber'转换为'NSNumber'RKValueTransformer

我创建了一个RKValueTransformer,但是在映射数据时从不调用它。

- (void)setupValueTransformers {

    [[RKValueTransformer defaultValueTransformer] addValueTransformer:[self coordinatesValueTransformer]];

    [[RKValueTransformer defaultValueTransformer] insertValueTransformer:[self coordinatesValueTransformer] atIndex:0];
}

- (RKValueTransformer *)coordinatesValueTransformer {
    return [RKBlockValueTransformer valueTransformerWithValidationBlock:^BOOL(__unsafe_unretained Class inputValueClass, __unsafe_unretained Class outputValueClass) {

        return ([inputValueClass isSubclassOfClass:[NSNumber class]] && [outputValueClass isSubclassOfClass:[NSNumber class]]);
    } transformationBlock:^BOOL(id inputValue, __autoreleasing id *outputValue, __unsafe_unretained Class outputClass, NSError *__autoreleasing *error) {

      //MY PROCESSING here

        return YES;
    }];
}

1 个答案:

答案 0 :(得分:1)

如果源类与目标类匹配,则不需要转换,也不会调用变换器。

KVC validation是适合这种逻辑的地方。