iphone - 如何使用 swift 验证本地播放器?

标签 iphone authentication swift ios8 game-center

我正在尝试将游戏中心集成到我的游戏中并创建排行榜。

我已经在 iTunes Connect 上创建了排行榜,启用了游戏中心并创建了一个沙盒测试器。

尽管我有这个错误:

无法验证失败 错误为零

这是我的错误 println(见我的代码)

我错过了什么吗?

这里是我的 gameViewController 的代码:

import UIKit
import SpriteKit
import AVFoundation
import iAd
import GameKit

var defaults = NSUserDefaults()
var highscore = defaults.integerForKey("highscore")


class GameViewController: UIViewController, ADBannerViewDelegate, GKGameCenterControllerDelegate {


var adBannerView: ADBannerView!

var leaderboardIdentifier: String? = nil
var gameCenterEnabled: Bool = false

override func viewDidLoad() {
    super.viewDidLoad()

    var skView = self.originalContentView as SKView
    var scene:SKScene = GameScene(size: skView.bounds.size)

    skView.presentScene(scene)

    loadAds()


}

func authenticateLocalPlayer()
{
    var localPlayer = GKLocalPlayer()
    localPlayer.authenticateHandler =
        { (viewController : UIViewController!, error : NSError!) -> Void in
            if viewController != nil
            {
                self.presentViewController(viewController, animated:true, completion: nil)
            }
            else
            {
                if localPlayer.authenticated
                {
                    self.gameCenterEnabled = true
                    localPlayer.loadDefaultLeaderboardIdentifierWithCompletionHandler
                        { (leaderboardIdentifier, error) -> Void in
                            if error != nil
                            {
                                print("error")
                            }
                            else
                            {
                                self.leaderboardIdentifier = leaderboardIdentifier
                                println("\(self.leaderboardIdentifier)") //in your example "VHS" should be returned
                            }
                    }
                }
                else
                {
                    println("not able to authenticate fail")
                    self.gameCenterEnabled = false

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

最佳答案

我自己解决。

编码:var localPlayer = GKLocalPlayer.localPlayer()

而不是:var localPlayer = GKLocalPlayer()

关于iphone - 如何使用 swift 验证本地播放器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27277011/

相关文章:

iphone - 对待 SpriteKit Swift 中的每个节点

Docker 使用单独的凭据进行推送和拉取

ios - 在 iOS 应用程序中拥有初始化屏幕的正确方法

iphone - 在 Iphone (iOS 5.x) 上通过蓝牙发送数据

iphone - 如何在 SDWebImage 中显示事件指示器

jQuery 默认/占位符输入文本和保存信息的问题

swift 4 : scrollViewDidScroll not working

iOS 键盘 "Done"按钮加载 Action

ios - 无法访问已安装的 Pod 类中的我的项目类

IOS登录后更改rootview Controller