0

我正在使用这种方法:

- (void) reportScore: (int64_t) score forLeaderboardID: (NSString*) category
{
GKScore *scoreReporter = [[GKScore alloc] initWithLeaderboardIdentifier:category forPlayer:[GKLocalPlayer localPlayer].playerID];
scoreReporter.value = score;
scoreReporter.context = 0;
NSNumber *scoreToReport = [[NSNumber alloc] initWithInt:score];

[GKScore reportScores:[NSArray arrayWithObject:scoreToReport] withCompletionHandler:^(NSError *error){
    NSLog(error.localizedDescription);
}];
}

向游戏中心报告分数(已经在 iTunes 中连接了排行榜等),但是当它到达 reportScores 方法时会弹出此错误:-[__NSCFNumber leaderboardIdentifier]: unrecognized selector sent to instance.

会是什么?谢谢!

(我使用这种方法而不是 reportScoreWithCompletionIdentifier 有一个非常具体的原因,但是由于 NDA,我不能告诉它,但无论如何这是使用该类方法的正确方法吗?)

4

1 回答 1

3

来自 GKScore文档

+ (void)reportScores:(NSArray *)scores withCompletionHandler:(void (^)(NSError *error))completionHandler
参数
score
一组要报告给 Game Center 的分数对象。

请注意,它说的是“分数对象数组”,而不是“NSNumbers 数组”。换句话说,您的数组必须包含 GKScore 对象,而不是 NSNumber。

于 2013-08-20T16:32:31.680 回答