添加NSMutableArray中的所有值

时间:2011-09-15 18:43:23

标签: objective-c ios cocoa-touch nsmutablearray

我有一个NSMutableArray,包含x个不同的NSStrings(NSString但只有数字没有字母)。我想将所有值相加以返回单个float或int。我想我必须用for循环做这个,但我对for循环非常不熟悉.... 好的,我已达到这一点:

for (NSString *a in det) 
{
   float x = [a floatValue];
   NSLog(@"%.2f",x);
}

这将返回'NSLog`中的所有值:

23.00
8.00
61.00
...

我怎么才能把它们加起来?

4 个答案:

答案 0 :(得分:14)

您可以避免循环,而是使用key value coding并获取总数

    NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"1.1", @"2.2", @"3.1", nil];
    NSNumber *sum = [arr valueForKeyPath:@"@sum.floatValue"];

变量总和为6.4。

答案 1 :(得分:5)

试试这个:

float total = 0;
for(NSString *str in det)
{
    total += [str floatValue];
}

答案 2 :(得分:3)

如果您想保存一些输入,这是for-in的代码。对于具有支持它的数据结构的这些类型的场景,最好使用快速枚举。

float result = 0.0;
for(NSString *i in nsArray)
{
    result += [i floatValue];
}

答案 3 :(得分:2)

int result = 0;

for(int i=0;i<[array count];i++) 
     result += [[array objectAtIndex:i] intValue];

如果你需要返回一个浮点数,只需将结果定义为float并使用floatValue而不是intValue