用户取消后重新启用 GameCenter ios9

Reenabling GameCenter after user-cancelled ios9

我正在尝试使用以下代码登录游戏中心:-

 [[GKLocalPlayer localPlayer]   authenticateWithCompletionHandler:^(NSError *error)
 {
     if (error == nil)
     {
         NSLog(@"Authentication Successful");
     }

     else
     {
         NSLog(@"Authentication Failed");
     }
 }];

:- 起初它打开游戏中心,但当用户按下取消按钮并再次出现时,游戏中心屏幕没有打开并显示以下错误 "The requested operation has been canceled or disabled by the user"。

请建议何时发生这种情况以及如何纠正。

无论您使用的是原始 post 中已弃用的方法还是当前首选机制(截至撰写本文时),

[[GKLocalPlayer localPlayer] setAuthenticateHandler:^(UIViewController *loginViewController, NSError *error)
{

}];

您只有一次验证机会。如果稍后再次尝试设置身份验证处理程序,将不会再次出现登录屏幕。这些链接更多地讨论了这一点:

  • Game Center login dialog not shown again after cancelling it for the first time (iOS7)
  • ios: programmatically ask for Game Center sign-in?

终止应用程序(不仅仅是切换,而是实际关闭应用程序)并重新启动它会导致在您尝试进行身份验证时再次出现登录信息。或者,切换到游戏中心应用程序应该允许用户登录。

因此,在我的应用程序中,我检查了错误代码。如果用户取消,处理程序中的 error.code 将设置为 2。当我看到这个值时,我禁用所有游戏中心功能,并向用户发出通知,说明他们需要做什么才能完成日志记录英寸