我有一个NSNumber,取自像这样的字符串
NSNumberFormatter *f = [[NSNumberFormatter alloc]init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
BRNumber = [f numberFromString:BRString];
当然这会返回一个值,但现在我希望做一些像
这样的事情id y = BRNumber + 50;
似乎这是不可能的。那我该怎么做呢?
答案 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没有运算符重载。