我有一个NSMutableArray,我需要制作其中所有数字的产品。 我只是无法理解该怎么做。 PS。我对Objective-c很新,所以要尽可能清楚。 感谢的
答案 0 :(得分:2)
int result=1;
NSMutableArray *array=[[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4", nil];
for (int i=0; i<[array count]; i++) {
result*=[[array objectAtIndex:i] integerValue];
}
NSLog(@"%d ",result);
答案 1 :(得分:0)
H2CO3是对的。为了完整起见,试试
NSNumber * sum = [numArray valueForKeyPath:@"@sum.self"];
其中numArray是你的数组。
答案 2 :(得分:0)
您可以查看NSExpression类,它非常强大,您可以根据自己的要求进行自定义。它还支持许多内置函数,例如:
NSArray *nums = @[@1, @2, @3, @4, @5];
NSExpression *expression = [NSExpression expressionForFunction:@"sum:" arguments:@[[NSExpression expressionForConstantValue:nums]]];
id result = [expression expressionValueWithObject:nil context:nil];
答案 3 :(得分:0)
假设我们正在使用int
值......
int sum = 1;
for (NSNumber *num in someArray) {
sum *= [num intValue];
}
NSLog(@"%d", sum);
int
和intValue
可以轻松替换为double
和doubleValue
或任何适合您需要的内容。 someArray
是值数组的名称。
但是......如果...问题措辞不当而且我们都误解了,你需要一个新的数组,其索引包含两个其他数组中相同索引处对象值的乘积,那么你'重新寻找更像这样的东西:
NSMutableArray *productArray = [NSMutableArray array];
for(int i=0; i<[arr1 count]; ++i) {
int product = [[arr1 objectAtIndex:i] intValue] * [[arr2 objectAtIndex:i]
intValue];
[productArray addObject: [NSNumber numberWithInt: product]];
}