Проблема с мантией - MTLValueTransformer не будет преобразовывать NSNumber в int

Я использую Mantle для успешного преобразования значений в моей модели - но этот возвращается с ошибкой: 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];
    }];
}

Это похожее преобразование работает отлично:

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

Не понимая разницу здесь.

1 ответ

Ответ от сопровождающего проекта: "Трансформаторы должны работать с объектами. Вам не нужно ничего делать для NSNumber, переходящего в примитивное свойство, потому что Key-Value Coding заботится об этом автоматически".

Другие вопросы по тегам