Проблема в том, что pyinstaller не работает с новой версией jsonschema. В nauta уже есть обходной путь https://github.com/IntelAI/nauta/commit/8806aaa87a25d17d89a9aa9062571620d63e2b48 , где require.txt форсирует jsonschema == 2.6.0 Пожалуйста, загрузите последнюю версию и попробуйте сборку снова.
Вы можете использовать встроенные функции класса NSDecimalNumber для сравнения числа с нулем, а затем умножить его на -1, если необходимо. Например:
- (NSDecimalNumber *)abs:(NSDecimalNumber *)num {
if ([num compare:[NSDecimalNumber zero]] == NSOrderedAscending) {
// Number is negative. Multiply by -1
NSDecimalNumber * negativeOne = [NSDecimalNumber decimalNumberWithMantissa:1
exponent:0
isNegative:YES];
return [num decimalNumberByMultiplyingBy:negativeOne];
} else {
return num;
}
}
Поскольку этот метод работает только с NSDecimalNumbers, нет потери точности.