Ios Can';t执行GKGameCenterControllerDelegate

Ios Can';t执行GKGameCenterControllerDelegate,ios,xcode,swift,delegates,game-center-leaderboard,Ios,Xcode,Swift,Delegates,Game Center Leaderboard,我已使用GameViewController对玩家进行身份验证,当进入我的菜单类并编写协议GKGameCenterControllerDelegate时,给我一个错误,键入“Menu”不符合协议“GKGameCenterControllerDelegate”。我不明白这个错误意味着什么以及如何修复它。我试过不同地方的东西,但我不知道怎么做才对 这是我出错的那一行,在word菜单下 class Menu: SKScene, GKGameCenterControllerDelegate GKGam

我已使用
GameViewController
对玩家进行身份验证,当进入我的菜单类并编写协议
GKGameCenterControllerDelegate
时,给我一个错误,
键入“Menu”不符合协议“GKGameCenterControllerDelegate”
。我不明白这个错误意味着什么以及如何修复它。我试过不同地方的东西,但我不知道怎么做才对

这是我出错的那一行,在word
菜单下

class Menu: SKScene, GKGameCenterControllerDelegate

GKGameCenterControllerDelegate
协议有一个必需的方法:
GameCenterViewControllerDelegate
。您需要在
菜单
类中实现此方法

编辑:对于您的评论,我将提供更深入的解释

协议是一种接口,它包括一组预期要实现的功能。任何实现该协议的东西,称为委托,都应该定义该集合中的所有函数。这些函数将被引用到您的实现的其他类使用,并在必要时调用它们

把它想象成在银行工作。你是一名出纳员,你负责与客户合作并分发现金。然而,有时你的抽屉会没钱给你,所以你必须要求你的经理从金库中取回更多。现在,由哪位经理为您取回现金并不重要。它可以是你的顶头上司,一直到公司的老板。你所关心的就是能够得到现金,这样你就可以继续帮助客户。作为出纳员,您将定义一个协议,其中包含如下方法:
func requestCash(amount:Int)->Int?
。您还将有一名代表负责实施该方法,或者在我们的环境中,负责为您获取现金。现在,每当你的钱不够的时候,你都有办法得到更多

因此,当你打卡开始出纳员的工作时,你需要你的经理有能力给你取现金。比如说,他们雇佣了一个没有资历的人来打开保险库。他不会为你工作的。当他说他将是你一天的经理(或执行你的协议)时,你知道他实际上无法从金库中获得现金(不执行你的方法)。所以,你抱怨。因此你看到了错误


注意:您可以使用可选的协议方法。这是完全正确的(在我们上面的示例中,它可能类似于
func approveLoanRequest(loan:loan)->Bool
——您可以简单地要求客户在不同的一天回来批准贷款请求,这在您的日常工作中是不必要的)。在这种情况下,如果没有实现方法,则不会调用这些方法;如果没有实现,则具有协议的类不会抛出错误。

Ok。成功了。你能解释一下这个方法在做什么,为什么让它工作吗?