【发布时间】:2018-01-11 10:27:45
【问题描述】:
我正在处理一个遗留项目,其中原始开发人员选择用浮点数表示货币价值(我知道...)
按照this question 的回答中的建议,我们已经承担了将项目中处理货币值的每个变量和属性转换为 NSDecimalNumber 的任务。
我们遇到的一个小问题是 NSDecimalNumbers 不使用标准算术运算符,而是使用方法。也就是说,当您使用算术运算符时,您添加的是内存地址,而不是实际值。在 Objective-C 中重载算术运算符似乎是不可能的,尽管它可以在 C++ 中实现。
我认为可以在 NSDecimalNumber 上创建一个用 C++ 编写的类别方法。我知道可以添加和编译 C++ 文件作为 Xcode iOS 项目的一部分,尽管我没有这样做并且不熟悉 C++。
在寻找如何完成此类事情的示例时,我找不到太多。谁能告诉我:
1) 是否可以按照我上面的描述进行操作?
2) 语法是什么?
【问题讨论】:
-
听起来你真正想要做的是引入一个新的 typedef 'Currency',这样你就可以在需要时更改它,而无需更改 400 个不同的条目。 (例如,当您认为 NSDecimal Number 不够便携;或者也需要存储货币符号时)
-
如果您从未做过并且不熟悉 C++,为什么还要坚持用 C++ 编写您的类别?
-
@mag_zbc 因为据我了解,C++ 支持在 Objective-C 不支持的情况下重载算术运算符。我将更新问题以更清楚地包括这一点。
标签: c++ ios objective-c xcode objective-c-category