0

I'm using Mantle to successfully transform values in my model - but this one comes back with the error: Incompatible block pointer types sending 'int (^)(NSNumber *__strong)' to parameter of type 'MTLValueTransformerBlock' (aka 'id (^)(__strong id)'):

+ (NSValueTransformer *)numDownvotesJSONTransformer
{
    return [MTLValueTransformer reversibleTransformerWithForwardBlock:^(NSNumber *number) {
        return [number intValue];
    } reverseBlock:^(int value) {
        return [NSNumber numberWithInt:value];
    }];
}

This similar transform works fine:

+ (NSValueTransformer *)longitudeJSONTransformer
{
    return [MTLValueTransformer reversibleTransformerWithForwardBlock:^(NSNumber *number) {
        return [NSDecimalNumber decimalNumberWithDecimal:[number decimalValue]];
    } reverseBlock:^(NSDecimalNumber *decimalNumber) {
        return [NSNumber numberWithDouble:[decimalNumber doubleValue]];
    }];
}

Not understanding the difference here.

H K
  • 1,215
  • 2
  • 16
  • 29

1 Answers1

4

Answer from the project's maintainer: "Transformers must operate upon objects. You don't need to do anything for an NSNumber going to a primitive property, because Key-Value Coding takes care of that automatically."

H K
  • 1,215
  • 2
  • 16
  • 29