Ter*_*y B 21 iphone objective-c nsdecimalnumber
好吧,这可能是当天的愚蠢问题,但假设我有一个班级:
NSDecimalNumber *numOne = [NSDecimalNumber numberWithFloat:1.0];
NSDecimalNumber *numTwo = [NSDecimalNumber numberWithFloat:2.0];
NSDecimalNumber *numThree = [NSDecimalNumber numberWithFloat:3.0];
Run Code Online (Sandbox Code Playgroud)
为什么我不能有一个添加这些数字的函数:
- (NSDecimalNumber *)addThem {
return (self.numOne + self.numTwo + self.numThree);
}
Run Code Online (Sandbox Code Playgroud)
我为一个白痴提前道歉,谢谢!
Fra*_*ger 23
你不能做你想要的,因为C和Objective C都没有运算符重载.相反,你必须写:
- (NSDecimalNumber *)addThem {
return [self.numOne decimalNumberByAdding:
[self.numTwo decimalNumberByAdding:self.numThree]];
}
Run Code Online (Sandbox Code Playgroud)
如果你愿意使用Objective-C++(将你的源代码重命名为.mm),那么你可以写:
NSDecimalNumber *operator + (NSDecimalNumber *a, NSDecimalNumber *b) {
return [a decimalNumberByAdding:b];
}
Run Code Online (Sandbox Code Playgroud)
现在你可以写:
- (NSDecimalNumber *)addThem {
return self.numOne + self.numTwo + self.numThree;
}
Run Code Online (Sandbox Code Playgroud)
去C++!
[[numOne decimalNumberByAdding:numTwo] decimalNumberByAdding:numThree]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10241 次 |
| 最近记录: |