use*_*693 7 iphone objective-c gamekit game-center ios7
如何从排行榜游戏中心获得本地玩家的分数?我尝试了这个代码,但它没有返回任何内容.有人知道如何解决它,或者有更好的方法来获得分数?
- (NSString*) getScore: (NSString*) leaderboardID
{
__block NSString *score;
GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
if (leaderboardRequest != nil)
{
leaderboardRequest.identifier = leaderboardID;
[leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
if (error != nil)
{
NSLog(@"%@", [error localizedDescription]);
}
if (scores != nil)
{
int64_t scoreInt = leaderboardRequest.localPlayerScore.value;
score = [NSString stringWithFormat:@"%lld", scoreInt];
}
}];
}
return score;
}
Run Code Online (Sandbox Code Playgroud)
我想,那个方法必须等待[leaderboardRequest loadScoresWithCompletionHandler:...完成
可能吗?
小智 6
您的代码似乎没有我能看到的任何错误.我建议显示标准排行榜界面,以查看报告分数的代码是否实际正常工作.如果是这样,您应该在排行榜中看到分数.下面的代码适用于我的游戏,我知道得分报告工作正常,因为它显示在默认的游戏中心UI中.
GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
leaderboardRequest.identifier = kLeaderboardCoinsEarnedID;
[leaderboardRequest loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else if (scores) {
GKScore *localPlayerScore = leaderboardRequest.localPlayerScore;
CCLOG(@"Local player's score: %lld", localPlayerScore.value);
}
}];
Run Code Online (Sandbox Code Playgroud)
如果您不确定如何,下面的代码应该可以显示默认排行榜(iOS7):
GKGameCenterViewController *gameCenterVC = [[GKGameCenterViewController alloc] init];
gameCenterVC.viewState = GKGameCenterViewControllerStateLeaderboards;
gameCenterVC.gameCenterDelegate = self;
[self presentViewController:gameCenterVC animated:YES completion:^{
// Code
}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3656 次 |
| 最近记录: |