![](/img/trans.png)
[英]How to add NSMutableArray as objectAtIndex for NSMutableArray
[英]How to add sum of NSMutableArray
每次進行擊殺時都試圖計算得分,並且每次加入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];
只需從Method中刪除此行並將其放在-viewDidLoad
。
NSMutableArray * scoreTally = [NSMutableArray array];
建議:我注意到你的代碼中有一件事你正在使用for loop
來計算總和。 有一種更好的方法來計算數組內所有值的總和,稱為KVC 。
int sum = [scoreTally valueForKeyPath:@"@sum.self"];
KVC的最佳部分是它非常簡單易用,它將行代碼的數量減少到一行,從而縮短了時間。
這是因為您不斷重新創建“ scoreTally
”數組,因此它不斷被重置為具有單個NSNumber對象的數組。
您需要創建一次 “ scoreTally
”數組,然后在分數不斷添加時添加其他對象。
所以我建議在其他地方移動你的“ scoreTally
”創作,例如視圖控制器的“ viewDidLoad
”方法(確保通過ivar或屬性保持“ scoreTally
”)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.