gpt4 book ai didi

ios - 如何使用 swift 函数 loadLeaderboardSets WithCompletionHandler

转载 作者:行者123 更新时间:2023-11-30 13:38:37 25 4
gpt4 key购买 nike

GKLeaderboardSet.loadLeaderboardSetsWithCompletionHandler(_ completionHandler: (([GKLeaderboardSet]?,NSError?) -> Void)?)

我正在尝试使用此类函数从 Game Center 检索排行榜集的信息。

            var leaderboardSetsRetrived = [""]
GKLeaderboardSet.loadLeaderboardSetsWithCompletionHandler({ (leaderboardSets, error) -> Void in
leaderboardSetsRetrived = leaderboardSets
})

这是我尝试做的,但是 xcode 说

"Cannot convert value of type '([String], _) -> Void' to expected argument type '(([GKLeaderboardSet]?, NSError?) -> Void)?"

我应该为参数添加什么?

游戏中心编程指南告诉我要做什么:

Before you can load the leaderboards contained within a set, you must load the set itself. Retrieve the list of leaderboard sets for your game from Game Center and display their titles. Use the loadLeaderboardSetsWithCompletionHandler: method to retrieve the leaderboard sets for your app. You can then load the leaderboards for a specific leaderboard set using the loadLeaderboardsWithCompletionHandler: method.

@available(iOS 7.0, *)
public class GKLeaderboardSet : NSObject, NSCoding, NSSecureCoding {

public var title: String { get } // Localized set title.

public var groupIdentifier: String? { get } // set when leaderboardSets have been designated a game group; set when loadLeaderboardSetsWithCompletionHandler has been called for leaderboards that support game groups
public var identifier: String? // leaderboard set.

// Loads array with all sets for game
// Possible reasons for error:
// 1. Communications problem
// 2. Unauthenticated player
// 3. Set not present
@available(iOS 7.0, *)
public class func loadLeaderboardSetsWithCompletionHandler(completionHandler: (([GKLeaderboardSet]?, NSError?) -> Void)?)

// Loads array with all leaderboards for the leaderboardSet
// Possible reasons for error:
// 1. Communications problem
// 2. Unauthenticated player
@available(iOS 7.0, *)
public func loadLeaderboardsWithCompletionHandler(completionHandler: (([GKLeaderboard]?, NSError?) -> Void)?)
}

extension GKLeaderboardSet {

// Asynchronously load the image. Error will be nil on success.

public func loadImageWithCompletionHandler(completionHandler: ((UIImage?, NSError?) -> Void)?)
}

来自 GKLeaderboardSet.h 的代码

现在我的代码可以运行了。

GKLeaderboardSet.loadLeaderboardSetsWithCompletionHandler({ (leaderboard, error) -> Void in
})

但是由于某种原因该函数没有接收任何参数。我无法将应该检索到的 leaderboardSets 保存到我创建的变量中。根据 GKLeaderboard 类引用:

Parameters:

completionHandler

A block that is called when the categories have been retrieved from the server.

The block receives the following parameters:

leaderboardSets
An array of GKLeaderboardSet objects that provides the leaderboard sets for your game. If an error occurred, this value may be non-nil. In this case, the array holds whatever data Game Kit was able to download before the error occurred.

error
If an error occurred, this error object describes the error. If the operation completed successfully, the value is nil.

最佳答案

现已修复。我犯的一个错误:leaderboardSetsRetrieved应该是[GKLeaderboardSet]而不是字符串数组。二、出于某种原因leaderboardSetsRetrived = leaderboardSets确实有效,只是 Xcode 不会自动完成 leaderboardSets由于某种原因,我认为参数有问题。

关于ios - 如何使用 swift 函数 loadLeaderboardSets WithCompletionHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35825427/

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