菜鸟教程小白 发表于 2022-12-12 13:46:32

ios - Game Center 验证本地玩家


                                            <p><p>我正在尝试使用以下代码对本地播放器进行身份验证:</p>

<pre><code>GKLocalPlayer *localPlayer = ;
if(!localPlayer.authenticated) {
    localPlayer.authenticateHandler = ^(UIViewController* controller, NSError *error) {
      if(controller != nil)
            ;
    };
}
</code></pre>

<p>但问题是即使 <code>.authenticated</code> 为假,在 <code>authenticationHandler</code>block 中返回的 Controller 始终为零。因此,玩家中心似乎总是被禁用。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我发现此验证码在 iOS 8 中运行良好。</p>

<pre><code>- (void)authenticateLocalPlayer
    GKLocalPlayer *localPlayer = ;
    if (localPlayer.isAuthenticated) {
      [ postNotificationName:LocalPlayerIsAuthenticated object:nil];
      return;
    }

    localPlayer.authenticateHandler=
^(UIViewController *viewController, NSError *error) {
      ;

      if(viewController != nil){
            ;
      } else if(.isAuthenticated) {
            NSLog(@&#34;connected to gk&#34;);
            _GKConnected = YES;
            [ postNotificationName:LocalPlayerIsAuthenticated object:nil];
      }
      else {
            _GKConnected = NO;
      }
    };

    // REGISTER LISTENER FOR INVITES
    ;
}
</code></pre>

<p>通知字符串可以是任何常量字符串(最好为反向 DNS 加上前缀以与 NotificationCenter <code>org.myapp.notificationname</code> 一起使用)。</p>

<p>在原始 OP 问题中,检索 <code>GKPlayer</code> 实例中 <code>authenticated</code> 属性的 getter 时出错:属性名称为 <code>authenticated</code> 但getter 必须是 <code>isAuthenticated</code>。</p>

<p>找出这些语义拼写错误可能很简单,而编译器不会警告您,因为它可能是使用点符号访问的简单属性后面的更多代码,并且默认情况下,setter 以 <code>is</code> 开头。 </p>

<p>顺便说一句,我可以通过工作示例教程添加指向知名教程的链接:</p>

<p> <a href="http://www.raywenderlich.com/60998/game-center-tutorial-how-to-make-a-simple-multiplayer-game-with-sprite-kit-part-2" rel="noreferrer noopener nofollow">http://www.raywenderlich.com/60998/game-center-tutorial-how-to-make-a-simple-multiplayer-game-with-sprite-kit-part-2</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Game Center 验证本地玩家,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/18432333/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/18432333/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Game Center 验证本地玩家