我正在尝试使用以下代码登录游戏中心: -
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error)
{
if (error == nil)
{
NSLog(@"Authentication Successful");
}
else
{
NSLog(@"Authentication Failed");
}
}];
: - 首先它会打开游戏中心,但是当用户按下取消按钮并再次出现时,游戏中心屏幕没有打开并显示以下错误“请求的操作已被用户取消或禁用”。
请在发生这种情况时提出建议以及纠正方法。
答案 0 :(得分:1)
无论您是使用原始帖子中的弃用方法还是当前首选机制(截至撰写本文时),
[[GKLocalPlayer localPlayer] setAuthenticateHandler:^(UIViewController *loginViewController, NSError *error)
{
}];
你只有一次认证。如果您稍后再次尝试设置身份验证处理程序,则登录屏幕将不会再次出现。这些链接更多地讨论了这个问题:
杀死应用程序(不只是切换,但实际关闭应用程序)并重新启动它将导致在您尝试进行身份验证时再次显示登录信息。或者,切换到游戏中心应用程序应该允许用户登录。
所以,在我的应用程序中,我检查错误代码。如果用户取消,处理程序中的error.code
将设置为2.当我看到此值时,我禁用所有游戏中心功能,并向用户发出通知,说明他们需要做什么来完成日志记录英寸