0

我在回调中收到以下错误loadScoresWithCompletionHandler:

Error Domain=NSURLErrorDomain Code=-1005 
"The operation couldn’t be completed. (NSURLErrorDomain error -1005.)"

之前和之后对 Game Center 的其他调用均成功。(它们在各种线程上运行)。如果已经初始化排行榜请求如下:

GKLeaderboard *leaderboard = [[GKLeaderboard alloc] init];

leaderboard.identifier  = leaderboardIdentifier; // valid identifier
leaderboard.playerScope = GKLeaderboardPlayerScopeFriendsOnly;
leaderboard.range       = NSMakeRange(1, 100); // max. allowed range.
leaderboard.timeScope   = GKLeaderboardTimeScopeAllTime;

[leaderboard loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error) {
    // ...
}];

这里发生了什么,我该如何克服这个问题?

调用loadScoresWithCompletionHandler:是从一个操作发出的NSOperationQueue,它的任务是向几个排行榜发出分数请求(我对每个都感兴趣localPlayerScore)并等待所有响应。第一个响应已经带有错误。

更新-1005 表示kCFURLErrorNetworkConnectionLost;根本原因仍不清楚。

更新如果我只发送一个请求(而不是到目前为止通常并行 6 个)我收到错误NSURLErrorDomain-1001,它表示kCFURLErrorTimedOut,或GKErrorDomain3 ...

4

1 回答 1

0

由于某种原因,此替代调用不会导致错误:

GKLeaderboard *leaderboard = 
    [[GKLeaderboard alloc] initWithPlayers:@[ GKLocalPlayer.localPlayer ]];

leaderboard.identifier = leaderboardIdentifier;
leaderboard.timeScope  = GKLeaderboardTimeScopeAllTime;

[leaderboard loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error) {
    // ...
}];

问题解决了。

于 2015-01-22T07:50:29.777 回答