如何使用GKSavedGameListener协议?

时间:2017-12-13 02:13:03

标签: ios objective-c gamekit

我正在为我的小型回合制iOS应用实现在线游戏。我在实施" GKSavedGameListener"时遇到了一些麻烦。协议,因为我不知道如何将对象注册为侦听器(或将对象设置为委托)。

我和#34; GKLocalPlayerListener"有类似的问题,但发现GKLocalPlayer允许通过" registerListener注册:"。我找到了关于这种缺乏的苹果文档。不幸的是,它看起来不像" GKSavedGameListener"很容易实现。

我看到GKLocalPlayer符合" GKSavedGameListener",但似乎没有实现协议中的可选功能(至少我没有在GKLocalPlayer.h中看到它们)。

我特别感兴趣的是"播放器:didModifySavedGame:"。

如何在" GKSavedGameListener"中实现自定义行为?协议功能?

1 个答案:

答案 0 :(得分:1)

Apple的文档中的每条指南:https://developer.apple.com/documentation/gamekit/gklocalplayerlistener?changes=_7&language=objcGKLocalPlayerListener继承自GKSavedGameListener等。您只需要GKLocalPlayerListener的实现,并且您将收到所有四个消息。

注册后,请将您的班级配置为符合GKLocalPlayerListener,以便您的班级收到:

@interface MyGameKitHelperClass : UIViewController
<
    GKLocalPlayerListener 
>

然后,您可以在类中实现当您的类收到相应消息时调用的函数。

-(void)player:(GKPlayer *)player didModifySavedGame:(GKSavedGame *)savedGame
{

}


-(void)player:(GKPlayer *)player hasConflictingSavedGames:(NSArray *)savedGames
{

}

// or whichever functions you're interested in.