Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone GameCenter-注销玩家_Iphone_Ios_Sdk_Game Center - Fatal编程技术网

Iphone GameCenter-注销玩家

Iphone GameCenter-注销玩家,iphone,ios,sdk,game-center,Iphone,Ios,Sdk,Game Center,我有一个iPhone游戏,我刚刚添加了对GameCenter的支持,一切似乎都正常。但是,作为一个不使用GameCenter的人,我添加了一个选项,以便用户可以关闭它。唯一的问题是,一旦GKLocalPlayer登录到GameCenter,我就看不到注销的方法——这意味着如果用户登录后禁用GameCenter支持,我的应用程序将不会使用它,但GK库仍然会在每次我的应用程序返回前台时将用户重新登录,直到应用程序终止。我不想发生这种事 有没有办法让本地玩家退出GameCenter,或者至少阻止GK框

我有一个iPhone游戏,我刚刚添加了对GameCenter的支持,一切似乎都正常。但是,作为一个不使用GameCenter的人,我添加了一个选项,以便用户可以关闭它。唯一的问题是,一旦GKLocalPlayer登录到GameCenter,我就看不到注销的方法——这意味着如果用户登录后禁用GameCenter支持,我的应用程序将不会使用它,但GK库仍然会在每次我的应用程序返回前台时将用户重新登录,直到应用程序终止。我不想发生这种事


有没有办法让本地玩家退出GameCenter,或者至少阻止GK框架在每次你的应用程序激活时让你重新登录?

没有办法从应用程序内退出game center。最好的解决方案是添加一个指示用户登录状态的布尔标志:

BOOL gameCenterOn = [[NSUserDefaults standardUserDefaults] boolForKey:@"gameCenterOn"];
默认设置为“是”,如果用户选择退出应用程序中的游戏中心,则只需将其设置为“否”


在处理任何game center请求之前,您还必须检查该标志的值。(包括应用程序委托中的
[GKLocalPlayer]authenticateWithCompletionHandler:
调用。)

是的,这基本上就是我正在做的。问题是,一旦你登录,GK似乎会在你的应用程序丢失然后恢复前台状态时自动重新验证本地播放器,我找不到方法告诉它不要这样做。因此,如果用户登录到GK,然后决定禁用它,我的应用程序将不再与GameCenter对话,但每当他们从其他地方切换回我的应用程序时,GK仍将在玩家背后重新验证。它不会破坏任何东西,但它将不必要地耗尽人们宝贵的3G带宽!(我是OP)为什么你想让人们在你的应用程序中禁用游戏中心?如果他们有游戏中心帐户,为什么不使用呢?如果他们不想使用游戏中心应用程序,他们可以随时注销。如果有人登录到游戏中心,但不想将其用于您的应用程序,会出现什么情况?围绕预期行为编码是一个很好的警告信号。我有一个游戏中心帐户,但我不使用它,因为很多应用程序在连接断开时真的很不擅长不崩溃/做奇怪的事情。这意味着某些其他游戏在每次激活时都会不断要求我登录GameCenter,这让人非常恼火。将上述评论发布到soon-这只是一个选项,可以说“无论我是否登录,都不要纠缠我”,这是我希望mroe games拥有的。应用程序将(可以)只要求您登录3次。您可以尝试设置
localPlayer.authenticateHandler=nil
authenticateHandler不能为零。