我正在为iOS 6.0开发并向游戏中心提交分数。当我通过互联网连接提交分数时,一切正常。
当我关闭互联网连接并提交应更新排行榜的分数时,将调用完成处理程序而不会出现任何错误。当我重新打开互联网连接时,我期待GameKit将分数转发到游戏中心并更新排行榜。但它不会更新,甚至不会更新(1小时以上)。
最初提交分数时会对播放器进行身份验证,并在重新启用互联网连接时再次验证。
我错过了什么吗?它适用于沙盒帐户吗?我的分数提交代码如下:
- (void)submitScore:(int64_t)score category:(NSString*)category {
//1: Check if Game Center features are enabled
if (!_gcEnabled) {
return;
}
//2: Create a GKScore object
GKScore* gkScore = [[GKScore alloc] initWithCategory:category];
//3: Set the score value
gkScore.value = score;
//4: Send the score to Game Center
[gkScore reportScoreWithCompletionHandler:^(NSError* error) {
[self setLastError:error];
BOOL success = (error == nil);
if ([_delegate respondsToSelector:@selector(onScoresSubmitted:)]) {
[_delegate onScoresSubmitted:success];
}
}];
}
答案 0 :(得分:1)
当互联网连接恢复时,似乎缓存的分数,即在没有互联网连接时提交给游戏中心的分数,不会自动或立即发送到游戏中心。相反,它们会在下次报告分数时发送。
似乎如果我已经为排行榜类别x缓存了分数,我必须提交特定于该类别的新分数。提交不同类别的分数不会清空类别x的缓存。