来自GKLeaderboard的NSURLErrorDomain代码= -1005 loadScoresWithCompletionHandler:

时间:2015-01-21 16:49:18

标签: ios ios8 game-center nsoperationqueue nsurlerrordomain

我在回复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或{ {1}} 3 ...

1 个答案:

答案 0 :(得分:0)

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

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

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

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

问题解决了。