我正在为基于回合的小型iOS应用程序实现在线游戏。我在实现“ GKSavedGameListener”协议时遇到了一些麻烦,因为我不确定如何将对象注册为侦听器(或将对象设置为委托)。
我在使用“ GKLocalPlayerListener”时遇到了类似的麻烦,但是发现GKLocalPlayer允许通过“ registerListener:”注册。我发现苹果缺乏这种文档。不幸的是,它看起来不像“ GKSavedGameListener”那样容易实现。
我看到GKLocalPlayer符合“ GKSavedGameListener”,但似乎未在协议中实现可选功能(至少我在GKLocalPlayer.h中看不到它们)。
我对“ player:didModifySavedGame:”特别感兴趣。
如何在“ GKSavedGameListener”协议功能中实现自定义行为?
最佳答案
根据Apple文档中的指南:https://developer.apple.com/documentation/gamekit/gklocalplayerlistener?changes=_7&language=objc,GKLocalPlayerListener
继承自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.
关于ios - 如何使用GKSavedGameListener协议(protocol)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47784495/