我应该使用什么来代替 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? 的相关文章

  • 如何用图片替换UITableView?

    我有一个 UITableView 默认为空白 直到用户编辑并向其添加数据 我想显示一张带有说明的图像 直到用户编辑它为止 图片的大小非常适合导航栏和标签栏之间 有没有办法以编程方式执行此操作 您可以使用removeFromSuperview
  • 如何从 AFNetworking 和 AFJSONRequestOperation 获取可变字典?

    我将 JSONKit 与 AFNetworking 的 AFHTTPClient 带有 AFJSONRequestOperation 一起使用 我似乎无法弄清楚如何触发使用 JSONKit 的 mutableObjectFrom 方法 而不
  • ios 在后台处理推送通知

    我想保存应用程序处于后台状态时到达的推送通知 我知道关于 void application UIApplication application didReceiveRemoteNotification NSDictionary userIn
  • ios 导航 堆栈操作

    我在尝试从 iOS 应用程序操作导航堆栈时遇到问题 或者至少是由于这种操纵而产生的行为 我的情况 我有 3 个 ViewController 控制器a显示多个级别 控制器 b 是游戏视图 控制器 c 是某种分数 显然 我将在控制器 a 中选
  • 企业发行版在 Swift 应用程序中与 iOS8 配合不佳

    我在使用 swift 应用程序在 iOS 8 设备上运行 Enterprise 版本时遇到问题 如果我使用非企业帐户进行代码签名 它似乎工作正常 有人遇到这个问题吗 以下是我在尝试使用企业帐户运行构建以进行协同设计时在 iOS 设备上收到的
  • UIDocumentInteractionController 阻止“打开方式”表中的空投

    在我的应用程序中 我允许用户通过 Instagram 分享照片 这需要使用 UIDocumentInteractionController 如果手机支持 则会自动检测空投 如何将其从 打开方式 操作表中删除 即使我使用 UIActivity
  • Objective-c 中的块递归

    当执行涉及 Objective C 块的递归时 我在 iOS 应用程序中收到 EXC BAD ACCESS 信号 这是简化的代码 void problematicMethod FriendInfo friendInfo onComplete
  • 错误域=AVFoundationErrorDomain代码=-11814“无法记录”

    它不断给我错误 错误域 AVFoundationErrorDomain代码 11814 无法记录 我不确定问题是什么 我试图在拍照后计数器达到 1 时录制声音 static int counter counter will always b
  • 使用 NSError 检查错误的正确结构

    我正在编写各种例程 并尽力保持其整洁和重构 我正在创建的方法开始看起来与此代码类似 IBAction buttonPress id sender Create Document Shopping List with this documen
  • iOS 中的 CSV 逐行解析

    我正在 Objective c 中解析 CSV 文件 该文件包含如下内容 line 40 Rising searches line 41 nabi avc Breakout line 42 stonewall 700 line 43 med
  • 如何使 for 循环以与 NSLog(@"%@", arrData) 相同的顺序迭代

    我执行了以下代码NSLog arrData 调试器中的输出预计如下所示 0 first name John 1 first name Florence 2 first name Melinda 3 first name Zack 然后我执行
  • 如何使用MKMapView完成加载委托,可能的“完成显示”委托?

    当用户在选择注释后点击 保存 时 我尝试保存地图视图的缩略图 当用户尚未放大该注释时会出现问题 因此尚未加载关闭缩放级别 这就是用户点击保存后我正在做的事情 将布尔值 saving 设置为 true 居中并放大注释 无动画 当调用mapVi
  • 为什么使用[ClassName alloc]而不是[[self class] alloc]?

    我正在读马克 达尔林普尔 Mark Dalrymple 的著作在 Mac 上学习 Objective C 仅在协议章节 所以仍然相对较新 并试图弄清楚一些事情 为什么要通过类自己的名称来引用它 如果我有一个叫做Foo 为什么我会想写 比如说
  • 带有 Core Data 对象的动态 UITableView 高度

    过去几天我一直在试图解决一个谜团 即为什么我的批处理大小为 20 的 NSFetchedResultsController 总是在获取完成后立即错误 即加载到内存中 我的所有对象 从而导致请求需要约 20 秒 事实证明 这是因为在我的 he
  • 使用超类初始化器初始化类

    我有两个类 一个是另一个的子类 比如说Animal and Dog 超类有一些初始化器 比如initAnimal 子类有一些初始化器 比如initDog 问题是 从编译器的角度来看 做类似的事情是完全合法的Dog adog Dog allo
  • 适用于 Objective-C / iPhone 的良好 HTTP 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPDATE 这个问题显然已经过时了 参见日期 我建议只使用现代 iOS7 功能 例如 NSURLSession 我想 这个问题是为了历史
  • 确定 NSView 是否绘制的正确方法

    有没有正确的方法来确定是否NSView实际上是否在当前视图层次结构中绘制 考虑以下情况 视图完全在屏幕外 不是强制性的 该视图不在视图层次结构的顶部 The isHidden and isHiddenOrHasHiddenAncestor不
  • 在后台任务中安排通知

    我正在为 iOS 开发一个日历 闹钟应用程序 它与网络服务器同步 当在服务器上添加活动时 会发出推送通知 以便 iOS 客户端可以获取新数据 并根据需要更新和安排下一次警报的时间 本地通知 但这仅在应用程序在客户端打开时才有效 我希望客户端
  • 如何更改已上传的 Firebase 存储图像文件名?

    我需要更改已上传到 firebase 存储中的文件名 因为 在 firebase 存储中上传图像后 我将 url 保存在 firebase 数据库中的特定子 文件夹 下 但是 当我将图像移动到另一个子 文件夹 时 我需要根据新名称更改存储中
  • 我应该在哪个方法中设置 UITextField 的委托?

    在 viewDidLoad 或 init 方法中设置 UITextField 的委托是一个好习惯吗 我尝试在 init 方法中将委托设置为 self 但它没有调用相应的委托方法 当我将代码移动到 viewDidLoad 中时 它注册为将 s

随机推荐

  • 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