Ios 如何添加NSMutableArray的和

Ios 如何添加NSMutableArray的和,ios,objective-c,nsmutablearray,Ios,Objective C,Nsmutablearray,试图在每次杀戮时计算一个分数,每个分数加5分,但是,它从不加值,因此即使在额外杀戮后也会被卡在5分。下面是我的数组代码 NSMutableArray * scoreTally = [NSMutableArray array]; NSNumber *scoreValue = [NSNumber numberWithInteger:5]; [scoreTally addObject:scoreValue]; int sum=0;

试图在每次杀戮时计算一个分数,每个分数加5分,但是,它从不加值,因此即使在额外杀戮后也会被卡在5分。下面是我的数组代码

        NSMutableArray * scoreTally = [NSMutableArray array];
        NSNumber *scoreValue = [NSNumber numberWithInteger:5];
        [scoreTally addObject:scoreValue];

        int sum=0;
        for(int x=0; x < [scoreTally count]; x++)
        {
            sum += [[scoreTally objectAtIndex:x] intValue];
        }

        NSLog(@"SUM %D",sum);

        score.text = [NSString stringWithFormat:@"Score: %d",sum];
NSMutableArray*scoreTally=[NSMutableArray];
NSNumber*scoreValue=[NSNumber numberWithInteger:5];
[scoreTally addObject:scoreValue];
整数和=0;
对于(整数x=0;x<[计分计数];x++)
{
总和+=[[scoreTally objectAtIndex:x]intValue];
}
NSLog(@“总和%D”,总和);
score.text=[NSString stringWithFormat:@“分数:%d”,总和];

这是因为您一直在重新创建“
scoreTally
”数组,因此它不断地被重置为具有单个NSNumber对象的数组

您需要创建“
scoreTally
”数组一次,然后在分数不断增加时向其中添加其他对象


因此,我建议将您的“
scoreTally
”创建移动到其他地方,例如视图控制器的“
viewDidLoad
”方法(确保通过ivar或属性保留“
scoreTally
”)

只需从方法中删除这一行,并将其放置在
-viewDidLoad
中即可

NSMutableArray * scoreTally = [NSMutableArray array];

建议:我注意到您的代码中有一点,您正在使用
for loop
来计算总和。有一种更好的方法可以计算数组中所有值的总和,该数组称为


KVC最棒的地方在于它非常简单,易于使用,它将代码行数减少到一行,从而节省了时间。

非常简洁,对您来说+1。这个神奇的“@sum.self”是什么?还有这些吗?有文档吗?或者我可以自己用谷歌搜索!这里有一些@JamesWebster:谢谢。我正在将您的链接添加到我的答案。键值编码编程指南:收集运算符:
int sum = [scoreTally valueForKeyPath:@"@sum.self"];