gpt4 book ai didi

ios - 如何从 iOS 的排行榜中检索分数?

转载 作者:搜寻专家 更新时间:2023-10-31 22:16:06 24 4
gpt4 key购买 nike

我想在 Swift 中用 GKLeaderboard 显示 GKPlayer 的最高分。

func login() {

if (GKLocalPlayer.localPlayer().authenticated) {

var leaderboardRequest: GKLeaderboard!
leaderboardRequest.identifier = "Best_Score"

// Error: fatal error: unexpectedly found nil while unwrapping an Optional value
func loadLeaderboardsWithCompletionHandler(completionHandler: (([AnyObject]!,
NSError!) -> Void)!) {

var localPlayerScore: GKScore = leaderboardRequest.localPlayerScore
}
}
}

不过,func loadLeaderboardsWithCompletionHandler 返回此错误消息: fatal error :在展开可选值时意外发现 nil 因为我强制展开包含 nil 的可选。

我的代码哪里出错了?

最佳答案

您正在声明 GKLeaderboard,但未对其进行初始化。还要注意 loadLeaderboardWithCompletionHandler 是 GKLeaderBoard 的类函数。改为这样做:

if (GKLocalPlayer.localPlayer().authenticated) {
GKLeaderboard.loadLeaderboardsWithCompletionHandler { objects, error in
if let e = error {
println(e)
} else {
if let leaderboards = objects as? [GKLeaderboard] {
for leaderboard in leaderboards {
if let localPlayerScore = leaderboard.localPlayerScore {
println(localPlayerScore)
}
}
}
}
}
}

作为旁注,使用隐式展开的可选值是不安全的,即任何用 ! 声明的东西。以您的程序为例:您可以对其进行编译,但必须深入了解您的代码才能找到实际发生运行时错误的位置。如果您声明了 var leaderBoardRequest: GKLeaderBoard?,您将能够立即确定问题的根源,而无需编译和运行。

关于ios - 如何从 iOS 的排行榜中检索分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28798918/

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