当我在Group Leaderboard
中使用Game Center
时,我是否需要在我的应用中枚举的ID中使用“grp”前缀?
换句话说,如果我将现有游戏设置为使用Group Leaderboard
,我是否需要在我的应用中为每个ID添加“grp”前缀?
答案 0 :(得分:7)
好的,它有效。您可以将现有排行榜移至组,而无需在应用程序中执行任何更改。
希望我不打破NDA,没有找到任何相关信息,除了这个链接 - http://david-smith.org/blog/2012/06/18/ios-6-nda-cheatsheet/
答案 1 :(得分:2)
对不起,如果我错误地阅读了您的问题。但我相信答案是肯定的。
我在游戏中使用组排行榜,我提交了一个分数。
#define LeaderboardID @"grp.yourleaderboardname"
GKScore *scoreReporter = [[GKScore alloc] initWithCategory:LeaderboardID];
scoreReporter.value = yourscore;
[scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
if (error != nil) {
NSLog(@"%@", error);
} else {
NSLog(@"%@", @"Success submitting score");
}
}];
[scoreReporter release];
之前没有使用群组排行榜的游戏我的LeaderboardID就是这样定义的。
#define LeaderboardID @"com.yourcomapny.yourgame.yourleaderboardname"
所以我相信你必须改变你的id以包含grp前缀。
答案 2 :(得分:1)
答案是肯定的,你必须改为“grp”。字首。这就是为什么zakhej可能已经想到为什么他找到了答案:
例如,当您将一个排行榜放入一个组时,该单个排行榜将继续存在。如果您继续使用原始类别ID报告分数,则会将其添加到原始单个排行榜,而使用“grp”。前缀会将它们添加到新的分组中,这基本上就是您想要做的。简而言之,将排行榜放在一个组中将导致有两个排行榜,每个排行榜都会使用自己的类别ID进行更新。
因此看起来原始的类别ID可能会继续有效,但是你会看到旧的单一排行榜。这就是为什么您可能会注意到有时旧的类别ID会更新分数,有时却不会更新分数。
花了很长时间来解决这个问题,但Apple itunes Connect支持解释了这一点,这是有道理的。不更新游戏的玩家将继续向旧排行榜报告分数,并将在游戏中心看到该分数。当他们稍后更新时,他们可能会惊讶地发现,当您 - 开发人员将该排行榜添加到该组时,他们的高分是前一个。
本文档在规划游戏中心实施方面非常有用:https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnectGameCenter_Guide/iTunesConnectGameCenter_Guide.pdf
答案 3 :(得分:0)
这个问题有两个不同且相反的答案,所以我想我会表达我自己的经历:
TL;DR 不要添加 grp.
前缀。
GKGameCenterViewController
显示最高分效果很好grp.
前缀GKGameCenterViewController
时它没有在我实例化它的排行榜上打开,它只在仪表板上打开,好像它无法识别 ID grp.
),现在我可以再次发布分数,并按预期使用 GKGameCenterViewController
。结论:你可以用grp.
把id改成新的来发布分数,结果是一样的,但是GKGameCenterViewController
只在你使用时有效原始 ID。