iOS:通过分数迭代&;把它们加起来?
我正在使用以下方法从我的gamecenter排行榜中检索前100名的分数。一切都正常工作,除了当我检索一个分数时,我想把它们加起来,这样一旦完成,我就有了1个总分 我怎样才能修好它iOS:通过分数迭代&;把它们加起来?,ios,objective-c,for-loop,iteration,game-center,Ios,Objective C,For Loop,Iteration,Game Center,我正在使用以下方法从我的gamecenter排行榜中检索前100名的分数。一切都正常工作,除了当我检索一个分数时,我想把它们加起来,这样一旦完成,我就有了1个总分 我怎样才能修好它 - (void) retrieveTop100Scores { GKLeaderboard *leaderboard1 = [[GKLeaderboard alloc] init]; leaderboard1.identifier = [Team currentTeam]; leaderboard1.timeSc
- (void) retrieveTop100Scores {
GKLeaderboard *leaderboard1 = [[GKLeaderboard alloc] init];
leaderboard1.identifier = [Team currentTeam];
leaderboard1.timeScope = GKLeaderboardTimeScopeAllTime;
leaderboard1.playerScope = GKLeaderboardPlayerScopeGlobal;
leaderboard1.range = NSMakeRange(1, 100);
[leaderboard1 loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error) {
if (error != nil) {
NSLog(@"%@", [error localizedDescription]);
}
if (scores != nil) {
for (GKScore *score in scores) {
NSLog(@"%lld", score.value);
//Add them all up here?
}
}
}];
}您可以在循环之外创建一个变量,并且在每次迭代中,
var+=score.value
。因此,在迭代之后,您构建的变量将包含总分 您需要某种类型的“total”变量。只需将每个分数加到总数中。谢谢你的rmaddy!有一个问题,我在执行类似int totalScore=totalScore+score.value的操作时,会出现一个缺少的块错误;注意:我声明了我的totalScore变量,并在方法的开头将其设置为0。您需要在循环之外声明该变量。听起来您会收到一个错误,因为您在块(loadScoresWithCompletionHandler)之外声明了totalScore。您将需要_block modifier来修改块内的变量,如下所示:_block NSInteger totalScore;谢谢TonyD!除了您的回答,以及rmaddy&Bird的评论,我能够以非常干净和有效的方式完成这项工作!