gpt4 book ai didi

ios - 使用 SpriteKit 在 Swift 中将 GameCenter 与 NSNotification 集成 - ViewController 问题

转载 作者:行者123 更新时间:2023-11-28 06:53:09 26 4
gpt4 key购买 nike

我已经尝试了一大堆方法让 Game Center 在我的 SpriteKit 游戏中工作。不幸的是,我过去使用 ObjC 和 ViewControllers 的方式不起作用,因为我使用的是 SKScene/GameScene。

这是代码的快速版本(我认为):

// MARK: Game Center Integration

//login and make available
func authenticateLocalPlayer(){
let localPlayer = GKLocalPlayer()
print(localPlayer)
localPlayer.authenticateHandler = {(viewController, error) -> Void in
if ((viewController) != nil) {
self.presentViewController(viewController!, animated: true, completion: nil)
}else{
print((GKLocalPlayer.localPlayer().authenticated))
}
}
}

//submit a score to leaderboard
func reportScoreToLeaderboard(thisScore:Int){
if GKLocalPlayer.localPlayer().authenticated {
let scoreReporter = GKScore(leaderboardIdentifier: "LeaderboardID")
scoreReporter.value = Int64(thisScore)
let scoreArray: [GKScore] = [scoreReporter]

GKScore.reportScores(scoreArray, withCompletionHandler: { (error: NSError?) -> Void in
if error != nil {
print(error!.localizedDescription)
} else {
print("Score submitted")
}
})
}
}

//show leaderboard (call from button or touch)
func showLeaderboard() {
let vc = self.view?.window?.rootViewController
let gc = GKGameCenterViewController()
gc.gameCenterDelegate = self
vc?.presentViewController(gc, animated: true, completion: nil)
}

//hides view when finished
func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController){
gameCenterViewController.dismissViewControllerAnimated(true, completion: nil)
}

不幸的是,无论我尝试什么,我都会得到这个错误:

Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior

...或者它只是崩溃。

我读过可以使用 NSNotifications 吗?但是如何呢?

我猜最好的方法是在 GameViewController.swift 中设置它并使用 NSNotifications 与 GameScene 中的 RootViewController 通信?不过,我似乎找不到教程或示例。

最佳答案

当 View Controller 需要更改 View 时使用委托(delegate),不要让 View 本身更改 View ,这可能会导致 View 在呈现新 View 时尝试解除分配,从而导致错误

关于ios - 使用 SpriteKit 在 Swift 中将 GameCenter 与 NSNotification 集成 - ViewController 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34397737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com