gpt4 book ai didi

SwiftUI GKLeaderboard loadEntries

转载 作者:行者123 更新时间:2023-12-05 09:07:25 24 4
gpt4 key购买 nike

我想在我的 SwiftUI 应用程序中添加排行榜。
我找不到任何使用 loadEntries 加载排行榜值的示例。我尝试了以下...

let leaderBoard: GKLeaderboard = GKLeaderboard()
leaderBoard.identifier = "YOUR_LEADERBOARD_ID_HERE"
leaderBoard.timeScope = .allTime
leaderBoard.loadScores { (scores, error) in ...

这会导致以下警告:

  • 'identifier' 在 iOS 14.0 中被弃用:使用loadEntriesForPlayerScope:timeScope:range:completionHandler: 代替。
  • 'timeScope' 在 iOS 14.0 中被弃用:使用loadEntriesForPlayerScope:timeScope:range:completionHandler: 代替。
  • 'loadScores(completionHandler:)' 在 iOS 14.0 中被弃用:使用loadEntriesForPlayerScope:timeScope:range:completionHandler:.

使用 loadEntriesForPlayerScope 会导致以下警告:

  • 'loadEntriesForPlayerScope(_:timeScope:range:completionHandler:)' 有已重命名为“loadEntries(for:timeScope:range:completionHandler:)”

使用loadEntries 我不知道如何指定排行榜标识符。

最佳答案

这是可能方法的简单演示 - 将所有内容放入 View 模型并在 View 中加载分数。

import GameKit

class BoardModel: ObservableObject {
private var board: GKLeaderboard?
@Published var localPlayerScore: GKLeaderboard.Entry?
@Published var topScores: [GKLeaderboard.Entry]?

func load() {
if nil == board {
GKLeaderboard.loadLeaderboards(IDs: ["YOUR_LEADERBOARD_ID_HERE"]) { [weak self] (boards, error) in
self?.board = boards?.first
self?.updateScores()
}
} else {
self.updateScores()
}
}

func updateScores() {
board?.loadEntries(for: .global, timeScope: .allTime, range: NSRange(location: 1, length: 10),
completionHandler: { [weak self] (local, entries, count, error) in
DispatchQueue.main.async {
self?.localPlayerScore = local
self?.topScores = entries
}
})
}
}

struct DemoGameboardview: View {
@StateObject var vm = BoardModel()
var body: some View {
List {
ForEach(vm.topScores ?? [], id: \.self) { item in
HStack {
Text(item.player.displayName)
Spacer()
Text(item.formattedScore)
}
}
}
.onAppear {
vm.load()
}
}
}

关于SwiftUI GKLeaderboard loadEntries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64850828/

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