新手指南:在 iPhone 应用程序中管理货币

2024-01-09

我正在构建一个需要管理资金数据类型的应用程序。

我是 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]];

但收到警告:

警告:从不同的 Objective-C 类型传递“save:”的参数 1

总的来说,我发现这个问题比预期的更复杂。我可以使用整数进行破解,但在我 10 多年的 Foxpro、Delphi、.NET、Python 编码中我从来没有这样做过……做这种工作从来没有遇到过问题。

无论如何,我想知道如何做到这一点。我阅读了网络,但只找到了与上面相同的代码和诸如“使用 NSDecimalNumber 或被杀!”之类的信息。

我想知道如何:

  • 评估简单值,例如 12.5
  • 简单的数学
  • 如何从 sqlite 存储和加载。

谢谢。

(顺便说一句:存在解决这个问题的库或实用程序吗?这听起来像是一个常见的头痛,对吧?)


您收到该警告的原因是因为您将余额声明为原始 NSDecimal,而不是 NSDecimalNumber *。看一眼这个问题 https://stackoverflow.com/questions/421463/should-i-use-nsdecimalnumber-to-deal-with-money至于为什么应该使用 NSDecimalNumber。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

新手指南:在 iPhone 应用程序中管理货币 的相关文章

随机推荐