NSNumber +实数(例如50)=不可能?

时间:2010-06-28 05:46:09

标签: iphone

我有一个NSNumber,取自像这样的字符串

NSNumberFormatter *f = [[NSNumberFormatter alloc]init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];

BRNumber = [f numberFromString:BRString];

当然这会返回一个值,但现在我希望做一些像

这样的事情
id y = BRNumber + 50; 

似乎这是不可能的。那我该怎么做呢?

1 个答案:

答案 0 :(得分:3)

您需要在进行计算之前获取原始整数,然后将其包装回NSNumber。

NSNumber* y = [NSNumber numberWithInt:[BRNumber intValue] + 50];

如果您经常这样做,可以创建一个类别:

@implementation NSNumber (Arithmetics)
-(NSNumber*)numberByAddingInt:(int)val {
   return [NSNumber numberWithInt:[self intValue] + val];
}
@end

然后你可以使用

NSNumber* y = [BRNumber numberByAddingInt:50];

没有更短的方法,因为ObjC没有运算符重载。