我正在开发一个应用程序,使用下面的代码向游戏中心报告得分(如Apple建议)。 我的问题是,即使我的iPhone处于飞行模式,该应用程序也不会触发任何分数报告错误。它只是转到代码的“提交确定”部分。 知道为什么吗? 谢谢!
GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:category] autorelease];
scoreReporter.value = score;
[scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
if (error != nil)
{
// handle the reporting error
NSLog(@"Error Descr %@",error.localizedDescription);
NSLog(@"Error Code %@",error.code);
NSLog(@"Error Domain %@",error.domain);
}
else {
NSLog(@"Submission ok");
}
}];
答案 0 :(得分:1)
从iOS 5.0开始,reportScoreWithCompletionHandler
引起的任何网络错误都由GameKit内部处理。这意味着开发人员不再需要担心由于网络故障而重新提交待处理的分数。如果您使用iOS 5.0及更高版本构建,reportScoreWithCompletionHandler
的完成处理程序将不会收到任何与网络相关的错误。
答案 1 :(得分:0)
我建议使用Apple的可访问性标志来自行检测活动连接。如果连接不可用,请存储您的Game Center请求以供将来提交,并在网络再次可用时提交。有关可达性的更多信息,请参见here