在 objC 中,语法由拉温德里奇 https://www.raywenderlich.com/5509/beginning-turn-based-gaming-with-ios-5-part-2 for GKTurnBasedEventListener
,这是GKTurnBasedEventHandler
当时有,现在苹果改变如下。
if (!gameCenterAvailable) return;
void (^setGKEventHandlerDelegate)(NSError *) = ^ (NSError *error)
{
GKTurnBasedEventHandler *ev =
[GKTurnBasedEventHandler sharedTurnBasedEventHandler];
ev.delegate = self;
};
NSLog(@"Authenticating local user...");
if ([GKLocalPlayer localPlayer].authenticated == NO) {
[[GKLocalPlayer localPlayer]
authenticateWithCompletionHandler:
setGKEventHandlerDelegate];
} else {
NSLog(@"Already authenticated!");
setGKEventHandlerDelegate(nil);
}
现在将其转换为 swift 并写下组成GKTurnBasedEventListener
代替GKTurnBasedEventHandler
,这是通过以下方式实现的。
// Converted with Swiftify v1.0.6381 - https://objectivec2swift.com/
if !gameCenterAvailable {
return
}
var setGKEventHandlerDelegate: ((_: Error) -> Void)? = {(_ error: Error?) -> Void in
var ev = GKTurnBasedEventHandler.shared()
ev.delegate = self
}
print("Authenticating local user...")
if GKLocalPlayer.localPlayer().authenticated == false {
GKLocalPlayer.localPlayer().authenticate(withCompletionHandler: setGKEventHandlerDelegate)
}
else {
print("Already authenticated!")
setGKEventHandlerDelegate(nil)
}
不幸的是,这不是设置委托的正确语法GKTurnBasedEventListener
for my ViewController
.
如果你们中的任何人都可以为我解决这个问题,因为没有这个我无法读取事件侦听器的默认函数。
Cheers!
仅供参考,如果您想要一个关于如何在回合制 GameKit 比赛中使用 GKLocalPlayerListener 的工作示例,欢迎您查看此内容回合制游戏的示例项目 https://bitbucket.org/tenseg/hellogamekitios。我希望它能帮助您了解上下文中的所有内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)