Swift - 类型'MenuViewController'不符合协议'GKGameCenterControllerDelegate'

时间:2014-08-21 12:52:47

标签: ios xcode delegates swift game-center

我正在尝试使用GameCenter来显示我游戏中高分的排行榜。我一直在尝试使用一些代码来实现GameCenter,但都失败了。

我被告知在显示GameCenter视图控制器之前设置gameCenterDelegate。

我被告知要这样做:

var gcViewController: GKGameCenterViewController = GKGameCenterViewController()
gcViewController.gameCenterDelegate = self

但是这给了我以下错误:

Type 'MenuViewController' does not conform to protocol 'GKGameCenterControllerDelegate'

我尝试改变这个:

class MenuViewController: UIViewController {

为:

class MenuViewController: GKGameCenterViewControllerDelegate {

但是这给了我很多错误,第一个是在这一行上,阅读:

Use of undeclared type 'GKGameCenterViewControllerDelegate'

我一直试图让它工作大约两周,而且似乎没有任何解决方案。有人可以帮帮我???

1 个答案:

答案 0 :(得分:3)

您的MenuViewController必须同时是UIViewController 的子类,以声明它实现了委托。如果您已正确导入GameKit,则:

class MenuViewController: UIViewController, GKGameCenterControllerDelegate {
   ...
}

应该有效。我同意语法有点令人困惑,超类和实现的协议之间没有任何标记。

编辑:哎呀,简单的错误。代表实际上是GKGameCenterControllerDelegate而不是GKGameCenterViewControllerDelegate。声明你按上面的方式实现它,然后实际实现方法。