Я создаю приложение, которое должно управлять типом данных money.
Я новичок в Obj-c, поэтому не вижу яркости в использовании NSDecimalNumber.
Например, в моем модульном тесте я делаю это:
@interface SamplePerson : NSObject {
NSString *name;
NSDate *birthDate;
NSInteger size;
NSNumber *phone;
NSDecimal balance;
BOOL *isOk;
}
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSDate *birthDate;
@property (nonatomic) NSInteger size;
@property (nonatomic, retain) NSNumber *phone;
@property (nonatomic) NSDecimal balance;
@property (nonatomic) BOOL *isOk;
--
o.balance = [NSDecimalNumber decimalNumberWithDecimal: [[NSNumber numberWithLong: 12.5] decimalValue]];
Но получите предупреждение:
предупреждение: передача аргумента 1 'save:' из отдельного типа Objective-C
В общем, я решаю эту проблему сложнее, чем ожидалось. Я мог бы взломать с помощью целых чисел, но я никогда не делал этого в свои 10+ лет программирования на Foxpro, Delphi, .NET, Python ... никогда не было проблем с выполнением такого рода работы.
В любом случае, я хочу знать, как это сделать. Я читал в Интернете, но нашел только тот же код, что и выше, и информацию вроде «Использовать NSDecimalNumber или убить!».
Я хочу знать, как:
- Задание простых значений, например 12,5
- Простая математика
- Как хранить и загружать из sqlite.
Спасибо.
(кстати: существует библиотека или утилита, которые решают эту проблему? Это похоже на обычную головную боль, верно?)