-1
比分我有這樣我的代碼來檢索當前玩家的分數:的iOS:檢索從谷歌Play遊戲服務
int iOSHelper::retrieveScore(){
if(!gameServicesIsSignedIn())
return 0;
__block int score=0;
[GPGPlayer localPlayerWithCompletionHandler:^(GPGPlayer *player, NSError *error) {
if (!error){
GPGLeaderboard *myLeaderboard = [GPGLeaderboard leaderboardWithId:@LEADERBOARD_ID];
myLeaderboard.social = YES;
myLeaderboard.timeScope = GPGLeaderboardTimeScopeAllTime;
[myLeaderboard loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error) {
if (!error){
for (GPGScore *nextScore in scores) {
if ([player.playerId isEqualToString:nextScore.player.playerId]){
score = static_cast<int>(nextScore.value);
NSLog(@"has a score of %d", score);
break;
}
}
}
}];
}
}];
return score;
}
的問題是:如果我把NSLog的內循環,比分被檢索正確。當我把NSlog放在循環之外時,就在「返回分數」之前,它顯示分數爲0. 請給我你的建議來解決這個問題。我非常感謝你的幫助。 非常感謝,
我的猜測是?你的方法是異步的。這是已知的「問題」。換句話說,在去完成處理程序之前,你要去「迴歸分數」。 – Larme