|
@@ -572,11 +572,18 @@ static force_inline void ModelSetNumberToProperty(__unsafe_unretained id model,
|
|
|
((void (*)(id, SEL, uint32_t))(void *) objc_msgSend)((id)model, meta->_setter, (uint32_t)num.unsignedIntValue);
|
|
|
} break;
|
|
|
case YYEncodingTypeInt64: {
|
|
|
- ((void (*)(id, SEL, int64_t))(void *) objc_msgSend)((id)model, meta->_setter, (int64_t)num.stringValue.longLongValue);
|
|
|
- break;
|
|
|
- }
|
|
|
+ if ([num isKindOfClass:[NSDecimalNumber class]]) {
|
|
|
+ ((void (*)(id, SEL, int64_t))(void *) objc_msgSend)((id)model, meta->_setter, (int64_t)num.stringValue.longLongValue);
|
|
|
+ } else {
|
|
|
+ ((void (*)(id, SEL, uint64_t))(void *) objc_msgSend)((id)model, meta->_setter, (uint64_t)num.longLongValue);
|
|
|
+ }
|
|
|
+ } break;
|
|
|
case YYEncodingTypeUInt64: {
|
|
|
- ((void (*)(id, SEL, uint64_t))(void *) objc_msgSend)((id)model, meta->_setter, (uint64_t)num.unsignedLongLongValue);
|
|
|
+ if ([num isKindOfClass:[NSDecimalNumber class]]) {
|
|
|
+ ((void (*)(id, SEL, int64_t))(void *) objc_msgSend)((id)model, meta->_setter, (int64_t)num.stringValue.longLongValue);
|
|
|
+ } else {
|
|
|
+ ((void (*)(id, SEL, uint64_t))(void *) objc_msgSend)((id)model, meta->_setter, (uint64_t)num.unsignedLongLongValue);
|
|
|
+ }
|
|
|
} break;
|
|
|
case YYEncodingTypeFloat: {
|
|
|
float f = num.floatValue;
|