我应该使用什么来代替 iOS7 中已弃用的 GKLeaderboardViewController?

2023-12-13

我为 IOS 7 更新了我的应用程序,游戏中心有一些已弃用的内容,例如加载和关闭排行榜和成就,我该如何修复它们,它说 GKLeaderboardViewController 已弃用

- (IBAction)LeaderBoardsButton:(id)sender {
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != NULL)
{
    leaderboardController.leaderboardDelegate = self;
    [self presentViewController:leaderboardController animated:YES completion:NULL];
}
{
    AudioServicesPlaySystemSound(SoundID);
}
}

- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController
{
[self dismissViewControllerAnimated:YES completion:NULL];
{
    AudioServicesPlaySystemSound(SoundID2);
}
}

- (IBAction)AchievementsButton:(id)sender {
GKAchievementViewController *achievements = [[GKAchievementViewController
                                              alloc] init];
if (achievements != nil)
{
    achievements.achievementDelegate = self;
    [self presentViewController:achievements animated:YES completion:NULL];
}
{
    AudioServicesPlaySystemSound(SoundID);
}
}

- (void)achievementViewControllerDidFinish:(GKAchievementViewController
                                        *)viewController
{
[self dismissViewControllerAnimated:YES completion:NULL];
{
    AudioServicesPlaySystemSound(SoundID2);
}
}

我这样报告分数

- (IBAction)ShareScore:(id)sender {
[self.gameCenterManager reportScore: counter forCategory: self.currentLeaderBoard];

GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != NULL)
{
    leaderboardController.category = self.currentLeaderBoard;
    leaderboardController.timeScope = GKLeaderboardTimeScopeToday;
    leaderboardController.leaderboardDelegate = self;
    [self presentViewController:leaderboardController animated:YES completion:NULL];
}
{
    AudioServicesPlaySystemSound(SoundID);
}
}

iOS 7 将排行榜、成就等控制器合并到一起GKGameCenterViewController班级。您使用viewState参数来控制要显示的视图。

您需要执行以下操作来显示/关闭排行榜:

- (void) presentLeaderboards {
    GKGameCenterViewController* gameCenterController = [[GKGameCenterViewController alloc] init];
    gameCenterController.viewState = GKGameCenterViewControllerStateLeaderboards;
    gameCenterController.gameCenterDelegate = self;
    [self presentViewController:gameCenterController animated:YES completion:nil];
}

- (void) gameCenterViewControllerDidFinish:(GKGameCenterViewController*) gameCenterViewController {
    [self dismissViewControllerAnimated:YES completion:nil];
}

同样,为了展示成就,您可以这样做:

- (void) presentAchievements {
    GKGameCenterViewController* gameCenterController = [[GKGameCenterViewController alloc] init];
    gameCenterController.viewState = GKGameCenterViewControllerStateAchievements;
    gameCenterController.gameCenterDelegate = self;
    [self presentViewController:gameCenterController animated:YES completion:nil];
}

报告分数看起来像这样:

- (void) reportHighScore:(NSInteger) highScore forLeaderboardId:(NSString*) leaderboardId {
    if ([GKLocalPlayer localPlayer].isAuthenticated) {
        GKScore* score = [[GKScore alloc] initWithLeaderboardIdentifier:leaderboardId];
        score.value = highScore;
        [GKScore reportScores:@[score] withCompletionHandler:^(NSError *error) {
            if (error) {
                NSLog(@"error: %@", error);
            }
        }];
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该使用什么来代替 iOS7 中已弃用的 GKLeaderboardViewController? 的相关文章

随机推荐

  • Kafka Streams:如何使用 persistenceKeyValueStore 从磁盘重新加载现有消息?

    我的代码当前使用 InMemoryKeyValueStore 这避免了对磁盘或 kafka 的任何持久化 我想使用rocksdb Stores persistentKeyValueStore 以便应用程序将从磁盘重新加载状态 我正在尝试实现
  • 如何纠正 Damerau-Levenshtein 实施中的错误?

    我带着另一个较长的问题回来了 尝试过许多基于 Python 的 Damerau Levenshtein 编辑距离实现 我终于找到了下面列出的那个 as editdistance reference 它 似乎提供了正确的结果并且似乎有一个有效
  • 如何使用guard语句来检测赋值后的nil?

    我正在尝试使用 Guard 语句来检查是否为零 我很困惑为什么以下内容让它漏掉并生成 BAD EXEC 错误 guard let event Event eventsImagesLoading removeValueForKey locat
  • PDO_OCI - 进入 clob 字段

    我想在 Oracle DB 中插入一些 base64 编码的数据 每个字段最多 500 000 个字符 因为在我开始使用 PDO 并将字段设置为 CLOB 之前 我没有将 Oracle 与 PHP 一起使用 我的代码的简短版本 Db 类扩展
  • 在 Box2D 中制作漩涡

    我试图通过施加力在 C Objective C 上的 Box2D 中制作螺旋涡流 我想实现的是一个将物体从一个点推开或吸引它们的漩涡 我想我必须施加不止一种力量 我解决这个问题的切入点是 我想我必须施加三种力量 吸引或排斥身体中心的冲动 想
  • 将方法传递给迭代器方法时发生了什么

    众所周知 谁可以通过 a 将方法传递给迭代器方法 prefix 例如 a b map upcase gt A B def rettwo 2 end a b map rettwo gt 2 2 问题是 当我编写一个方法时 传递一个方法 前缀
  • 取出字符串中所有其他单词的算法?

    在 Javascript 中 如果我有一个像这样的字符串 你好 很高兴见到你 我希望返回的是奇怪地方的单词 这样我就会得到 你好 我怎样才能为此编写代码 您可以使用filter创建一个包含偶数索引元素的新数组 请记住 奇数 位置中的单词实际
  • 在完整节点中使用缩略图进行上一个/下一个节点导航

    我一直在试图解决这个问题并使其发挥作用 但由于我不是程序员 只是一名编码知识有限的设计师 所以我在这方面一直碰壁 我正在制作自己的照片库 我想将前两张或下一张图像显示为链接的缩略图 我发现这个脚本可以工作并显示文本链接 但不知道如何使其适应
  • 格式化日期的简单方法

    我写了一个 perl 脚本来获取日期时间 它确实有效 但我确实想知道是否有更简单的方法将日期格式设置为输出 usr bin perl use DateTime my dt DateTime gt now time zone gt local
  • Webapi 在本地工作,但在使用子域托管时无法工作

    我正在构建一个简单的 Web api 它从数据库检索客户余额 在 IIS 本地托管的一切都运行良好 该 api 从正文中获取一个参数 public static void Register HttpConfiguration config
  • fragment.onCreateView 导致空指针异常

    所以我正在使用片段并尝试在它们上连接点击侦听器 public View onCreateView LayoutInflater inflater ViewGroup container Bundle savedInstanceState V
  • Django:存储图像数据库

    早些时候我使用默认数据库 sqlite3 但今天我将其更改为 postgresql 我想将图像文件保存在数据库中而不是项目目录本身中 我怎样才能做到这一点 将图像存储在数据库中并不是一个好主意media文件夹 但你可以使用二进制字段为了这
  • Unicode 中可能的组合字符序列

    有些字符未包含在 Unicode 中 即带重音的西里尔字母 但可以使用组合序列创建 据我了解 可能的组合字符序列是在布局引擎和 或使用的字体中定义的 我对吗 那么 如何得到所有可能的组合序列呢 您是正确的 尝试创建任意组合序列对于布局引擎和
  • 如何只打印文本?

    我正在尝试将一些文本发送到打印机 我只需要打印文本 在页边距处包裹并在必要时流到另一页 这是我现在正在做的一个最小的例子 FXML private void print TextArea printArea new TextArea tex
  • 向数组添加一个元素

    我正在从源读取数据作为数组 一个 我需要向数组中再添加一个元素 获得数组后 我创建一个容量为 n 1 的新数组 并将所有元素复制到新数组中 并将新元素作为数组的最后一个元素 我可以做这个 有一个更好的方法吗 尤其是 Linq 您所描述的实际
  • 如何与 dart 中的 js 交互?

    不 这与同名的其他问题不同 有一些看似相同的包可以做到这一点 但具有不同的 api http dart lang github io js interop docs js html https api dartlang org docs c
  • 输入按钮 onClick 删除最接近的 div

    呃 为什么这不起作用 我多次在我的网站上使用类似的代码 但现在不起作用 HTML div span a span div
  • 可以点击jquerydraggableparent开始拖动吗?

    我有这样的标记 div div div div 用这样的JS colorpicker selector draggable containment colorpicker background handle colorpicker sele
  • 来自 ant 的空 Junit 报告

    我正在尝试使用 ant 运行 junit 测试并生成报告 我能够成功运行测试 但报告文件为空 我究竟做错了什么 这是我的 build xml
  • 我应该使用什么来代替 iOS7 中已弃用的 GKLeaderboardViewController?

    我为 IOS 7 更新了我的应用程序 游戏中心有一些已弃用的内容 例如加载和关闭排行榜和成就 我该如何修复它们 它说 GKLeaderboardViewController 已弃用 IBAction LeaderBoardsButton i