我正在尝试开发一款简单的多人游戏。按照Apple文档中的说明,我正在实施邀请处理程序“matchforinvite”,以便我可以接受来自其他玩家的邀请。 https://developer.apple.com/library/ios/documentation/GameKit/Reference/GKMatchmaker_Ref/#//apple_ref/occ/instm/GKMatchmaker/matchForInvite:completionHandler:
我是通过以下功能
来做到这一点的func setUpInviteHandler() {
GKMatchmaker.sharedMatchmaker().matchForInvite(invite: GKInvite, completionHandler: { match, error -> Void in
if invite.playerAttributes != 0 {
print(invite.playerAttributes)
}
})
}
但是,无论我如何更改它,Xcode始终存在错误。我怎么能解决它?
这里的问题(我猜)是GKInvite对象在有邀请之前永远不会存在。但是,当你执行这样的函数时,必须初始化GKInvite才能被调用。你怎么能初始化运行时对象?最糟糕的是我无法做到!(GKInvite)或GKInvite == nil检查因为类类型。有人可以帮忙吗?
答案 0 :(得分:0)
目前我将matchforinvite处理程序放在协议函数下
func player(player: GKPlayer, didAcceptInvite invite: GKInvite) {
self.debug("did received and accepted an invite" + String(player.playerID))
GKMatchmaker.sharedMatchmaker().matchForInvite(invite, completionHandler: { match, error -> Void in
self.debug("Invite received")
})
}
错误消失但仍然无法通过