我在登录到Game Center时遇到了问题。我在应用程序完成加载后立即呈现登录对话框。如果用户取消了对话框,我想提供一个登录按钮在我的主菜单中让他改变主意。然而,在iOS7的iPad上,按钮没有任何作用——Game Center对话框不会显示(在iOS6上它可以正常工作)。相反,我立即得到错误提示:“请求的操作已被用户取消或禁用。”相同的代码在应用程序启动时和按钮点击时都被调用。它使用authenticateWithCompletionHandler方法,基本上看起来像:
GKLocalPlayer* localPlayer = [GKLocalPlayer localPlayer];
[localPlayer authenticateWithCompletionHandler:^(NSError *error)
{
OnLogin(error);
}];
(我知道这种方法已被弃用,但是使用新方法的经验甚至更糟。)
有趣的是,如果将应用程序移动到后台,然后将其带回前台,GC对话框确实会出现。
即使在第一次取消之后发生了描述的问题,因此我不认为它与Game Center在3次取消后禁止应用程序有任何关系。
是否有人知道如何解决这个问题?