2014-10-03 149 views
1

我对Gamecenter有问题。其实我不知道它是否真的有问题。Gamecenter“欢迎”-Banner没有出现

验证我的localPlayer后,“欢迎”横幅没有出现。 这是为什么?这是一个迹象表明有什么不对吗?

我写了我的第一个应用与Swift和SpriteKit与Gamecenter集成。当我打开我的应用时,Gamecenter认证我的localPlayer就好了。

GKLocalPlayer.localPlayer().authenticated  // is true 

打开排行榜的工作也很好。如果我退出Gamecenter并再次打开我的应用程序,它会要求我使用Gamecenter提供的视图登录。

显示GKNotification也没有问题。马上弹出。

这是我的代码来验证玩家:

func authenticateLocalPlayer(){ 
    var localPlayer = GKLocalPlayer() 
    localPlayer.authenticateHandler = {(viewController, error) -> Void in 
     if ((viewController) != nil) { 
      self.presentViewController(viewController, animated: true, completion: nil) 
     }else{ 
      println("(GameCenter) Player authenticated: \(GKLocalPlayer.localPlayer().authenticated)") 
     } 

    } 

} 

我缺少什么?

+0

哪里是你的authenticateLocalPlayer() – WMios 2014-10-07 05:26:07

+0

在我GameViewController,被称为在viewDidLoad() – MikeB 2014-10-08 10:36:41

+0

在应用程序委托中调用它 – WMios 2014-10-08 14:32:13

回答

0

我使用这个游戏中心的认证,而且我从来没有与它有问题(总是欢迎横幅):

func authenticateLocalPlayer() { 
    let localPlayer = GKLocalPlayer.localPlayer() 
    localPlayer.authenticateHandler = 
     { (viewController : UIViewController?, error : NSError?) -> Void in 
      if viewController != nil 
      { 
       self.presentViewController(viewController!, animated:true, completion: nil) 
      } 
      else 
      { 
       if localPlayer.authenticated 
       { 
        print("Player authenticated") 
        self.gameCenterEnabled = true 
        isAuthenticated = true 
        localPlayer.loadDefaultLeaderboardIdentifierWithCompletionHandler 
         { (leaderboardIdentifier, error) -> Void in 
          if error != nil 
          { 
           print("error", appendNewline: false) 
          } 
          else 
          { 
           self.leaderboardIdentifier = leaderboardIdentifier 
           print("\(self.leaderboardIdentifier)") 
          } 
        } 
       } else { 
        print("Not able to authenticate") 
        self.gameCenterEnabled = false 

        if error != nil 
        { 
         print("\(error!.description)") 
        } 
        else 
        { 
         print("error is nil") 
        } 
       } 
      } 
    } 
}