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

Iphone NSNumber+;实数(例如50)=不可能?,iphone,Iphone,我有一个NSNumber,它是从这样的字符串中提取的 NSNumberFormatter *f = [[NSNumberFormatter alloc]init]; [f setNumberStyle:NSNumberFormatterDecimalStyle]; BRNumber = [f numberFromString:BRString]; 当然,这会返回一个值,但现在我希望执行如下操作 id y = BRNumber + 50; 这似乎是不可能的。那么我应该怎么做呢?在进行计算之

我有一个NSNumber,它是从这样的字符串中提取的

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

BRNumber = [f numberFromString:BRString];
当然,这会返回一个值,但现在我希望执行如下操作

id y = BRNumber + 50; 

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

在进行计算之前,您需要获取原始整数,然后将其包装回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没有运算符重载,所以没有更短的方法。

好的,太好了!成功了。非常感谢。我只能在9分钟内接受你的回答。