2014-04-13 38 views
1

我想創建一個自定義RKValueTransformer進行轉換到收到的數據。我正在使用的API返回沒有任何小數點的緯度。我希望能夠進行一些處理並自己添加小數點。我可以將'lat'字段映射到實際的類別中:RKValueTransformer爲NSNumber從未呼籲

在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

如果源類匹配目標類,則不需要轉換,您的轉換器將不會被調用。

KVC validation是適合這種邏輯的地方。