0

我的 IDE 显示警告"Obsolete: Deprecated in iOS 7.0"此方法:

  • (GKScore) ReportScore()
  • (GKAchievement) ReportAchievement()

这种方法适用于 iOS 7,但使用没问题?
iOS 7 上是否存在其他方法?

谢谢!

4

2 回答 2

0

Objective-C 方法以小写方法开头。它们不是用圆括号调用的。所以我:

  1. 打开文档GKScore
  2. 寻找任何已弃用并发现的东西-reportScoreWithCompletionHandler:
  3. 看到它+reportScores: withCompletionHandler:没有被弃用。

并且看到了几乎相同的事情,即在GKAchievement.

所以:只需使用收集方法。不推荐使用的方法会在一段时间内不受支持,然后消失。通过阅读文档,您可以非常快速地了解当前支持的内容。

于 2014-07-19T10:03:02.750 回答
0

我使用这种方法在游戏中心报告分数并且它有效。

-(void)reportScore
{
    if(isIOS7)
    {
        // Create a GKScore object to assign the score and report it as a NSArray object.
        GKScore *score = [[GKScore alloc] initWithLeaderboardIdentifier:_leaderboardIdentifier];
        score.value = _score;

        [GKScore reportScores:@[score] withCompletionHandler:^(NSError *error) {
            if (error != nil) {
                NSLog(@"score reporting error : %@", [error localizedDescription]);
            }
            else
            {
                NSLog(@"score reported.");
            }
        }];
    }
    else
    {
        GKScore *scoreReporter = [[GKScore alloc] initWithCategory:_leaderboardIdentifier];
        scoreReporter.value = _score;
        scoreReporter.context = 0;

        [scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
            // Do something interesting here.
            if (error != nil) {
                NSLog(@"score reporting error : %@", [error localizedDescription]);
            }
            else
            {
                NSLog(@"score reported.");
            }
        }];
    }

}
于 2014-07-19T10:01:59.917 回答