我在回复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 ...
答案 0 :(得分:0)
由于某种原因,此替代呼叫不会导致错误:
GKLeaderboard *leaderboard =
[[GKLeaderboard alloc] initWithPlayers:@[ GKLocalPlayer.localPlayer ]];
leaderboard.identifier = leaderboardIdentifier;
leaderboard.timeScope = GKLeaderboardTimeScopeAllTime;
[leaderboard loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error) {
// ...
}];
问题解决了。