对我的NSMutable Array中的所有项应用乘法和除法

时间:2016-02-18 02:26:44

标签: ios objective-c arrays nsmutablearray

NSMutableArray *numberOfRides = [NSMutableArray array];
    for (NSInteger i=0; i<30; i++)
        [numberOfRides addObject:[NSNumber numberWithInteger:i]];

NSMutableArray*targetDollarAdd = numberOfRides;
    for (NSInteger e=0; e<30; e++)
        [targetDollarAdd replaceObjectAtIndex:e withObject:[NSNumber numberWithDouble:e] * [NSNumber numberWithDouble:2.75];

我对编程很陌生。我试图将我的数组中的所有内容乘以2.75,但我不断收到错误。我尝试过搜索,但似乎一切都在为我提升。

1 个答案:

答案 0 :(得分:0)

您无法乘以NSNumbers。他们不是数字!它们是包装数字的对象。

但你不能在NSArray中保留数字。他们不是对象!这就是NSNumber的用途:将一个数字包装在一个对象中,这样你就可以将它保存在NSArray中。哦,具有讽刺意味!

因此,要对NSNumber进行算术运算,解包NSNumber(获取整数或双精度或其中的任何内容 - 使用integerValuedoubleValue或其他任何适当的算法),执行算术运算,然后将结果作为NSNumber(使用initWithDouble:或其他)包装回来并将其粘贴回数组中。