Проблема с мантией - 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 заботится об этом автоматически".