- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
[GKMatchmaker sharedMatchmaker].inviteHandler 已在 iOS 7 中弃用,但 GameKit 指南仍建议以这种方式进行设置。有谁知道我们应该为 iOS 7 实时游戏邀请使用什么?有几个监听器类的新类/方法,但我所看到的没有一个专门解决这个问题。
'inviteHandler' is deprecated: first deprecated in iOS 7.0
最佳答案
所以我开始对此感到非常沮丧(几乎神奇的是,弃用警告昨天开始出现在我的控制台中)。 Apple 似乎没有详细说明如何将对象设置为实现新 GKLocalPlayerListener 协议(protocol)的对象。
这是我的做法。在验证我的本地播放器之后,我将实现 GKLocalPlayerListener 协议(protocol)的对象(在本例中为 self)注册为 Listener。我测试了我的应用程序如何响应相同的 Game Center 事件,并且它做出了相应的响应。我相信这是正确的方法,尽管我仍在质疑哪个地方最适合注册听众。我相信在玩家通过身份验证后这样做是有意义的,但它可能比这更微妙。
NSLog(@"Authenticating local user...");
__weak GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler =
^(UIViewController *viewController,
NSError *error) {
[self setLastError:error];
if (localPlayer.isAuthenticated) {
[localPlayer registerListener:self];
} else if(viewController) {
[self presentViewController:viewController];
} else {
}
};
您还希望避免多次注册监听器。这有点像为本地通知注册一个观察者。如果您不止一次这样做,您的监听器方法最终会被多次调用。
我信替换的方法:
-(void)handleInviteFromGameCenter:(NSArray *)playersToInvite;
是以下内容:
-(void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray *)playerIDsToInvite;
通过阅读文档,提到在调用时创建一个 GKMatchMakerViewController(或更定制的类似东西)。我知道这就是我在以前版本的应用程序中所做的,所以它不会那么遥远。该方法的结构也非常相似。
更多测试将确认这是否确实是接近新协议(protocol)的正确方法,但到目前为止它似乎是正确的。除非另有指示,否则我将继续此操作。
关于game-center - GameKit GKMatchMaker inviteHandler 在 iOS7 中弃用,替代者是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18904588/
我是一名优秀的程序员,十分优秀!