游戏中心对接会自定义邀请
Game Center Matchmaking Custom Invites
我确定有一个 'simple' 答案,但我一直很难找到它。
我创建了一个可以在游戏中心运行的 iOS 纸牌游戏。目前自动判断在线玩家,正常运行。
我想做的是让用户邀请他们的游戏中心好友一起玩。该文档并没有真正帮助我。
我在 swift 做我的项目,我觉得我在这里处理过时的项目和旧文档?
我已经设法获取了用户的好友列表,然后我假设我需要用该好友列表实例化一个媒人。
我所坚持的是,尝试按照 apple 的指导方针实施 "RecipientResponseHandler" 代码:
request.recipientResponseHandler = ^(GKPlayer *player, GKInviteeResponse response)
{
[self updateUIForPlayer: player accepted: (response == GKInviteeResponseAccepted)];
};
问题一:首先,^符号在swift语言中代表什么?
问题 2:XCode 似乎不喜欢参数中的 * 符号...我试过做类似...
request.recipientResponseHandler = (player: GKPlayer, response: GKInviteeResponse){
print("Do codeStuffHere")
};
但是,我找不到 XCode 允许的措辞方式...
问题 3:如何编写此响应处理程序才能使其正常工作?
问题 4:此外,为了收听邀请,我需要实施 GKLocalPlayerListener
协议...还有什么吗?
问题5:我觉得我少了一些很刺眼的东西?
我一直在自学,有时在没有任何指导的情况下理解概念需要一段时间,所以请在网上放轻松。我刚刚开始了解完成处理程序和闭包...
在此先感谢您的帮助。
What does the ^ symbol represent in the swift language?
XCode doesn't seem to like the * symbol in the arguments.
那是因为那个代码是用 Objective-C 写的,而不是 Swift。
我假设您正在查看找到的文档 here。如果是这样,那么是的,Apple 只是还没有开始更新他们所有的文档以使用 Swift 而不是 Objective-C(即使在选择的语言是 Swift 的页面上,就像这个).
这是整个代码清单的 Swift 等价物:
func invite(friends: [GKPlayer]) {
let request = GKMatchRequest()
request.minPlayers = 2
request.maxPlayers = 4
request.recipients = friends
request.inviteMessage = "Your Custom Invitation Message Here"
request.recipientResponseHandler = { player, response in
self.updateUI(for: player, accepted: response == .accepted)
}
}
func updateUI(for player: GKPlayer, accepted: Bool) {
// update your UI here
}
问题4,一定要注册GKLocalPlayerListener,并且只注册一次,例如:
GKLocalPlayer.local.register(self)
我确定有一个 'simple' 答案,但我一直很难找到它。
我创建了一个可以在游戏中心运行的 iOS 纸牌游戏。目前自动判断在线玩家,正常运行。
我想做的是让用户邀请他们的游戏中心好友一起玩。该文档并没有真正帮助我。
我在 swift 做我的项目,我觉得我在这里处理过时的项目和旧文档?
我已经设法获取了用户的好友列表,然后我假设我需要用该好友列表实例化一个媒人。
我所坚持的是,尝试按照 apple 的指导方针实施 "RecipientResponseHandler" 代码:
request.recipientResponseHandler = ^(GKPlayer *player, GKInviteeResponse response)
{
[self updateUIForPlayer: player accepted: (response == GKInviteeResponseAccepted)];
};
问题一:首先,^符号在swift语言中代表什么?
问题 2:XCode 似乎不喜欢参数中的 * 符号...我试过做类似...
request.recipientResponseHandler = (player: GKPlayer, response: GKInviteeResponse){
print("Do codeStuffHere")
};
但是,我找不到 XCode 允许的措辞方式...
问题 3:如何编写此响应处理程序才能使其正常工作?
问题 4:此外,为了收听邀请,我需要实施 GKLocalPlayerListener
协议...还有什么吗?
问题5:我觉得我少了一些很刺眼的东西?
我一直在自学,有时在没有任何指导的情况下理解概念需要一段时间,所以请在网上放轻松。我刚刚开始了解完成处理程序和闭包...
在此先感谢您的帮助。
What does the ^ symbol represent in the swift language?
XCode doesn't seem to like the * symbol in the arguments.
那是因为那个代码是用 Objective-C 写的,而不是 Swift。
我假设您正在查看找到的文档 here。如果是这样,那么是的,Apple 只是还没有开始更新他们所有的文档以使用 Swift 而不是 Objective-C(即使在选择的语言是 Swift 的页面上,就像这个).
这是整个代码清单的 Swift 等价物:
func invite(friends: [GKPlayer]) {
let request = GKMatchRequest()
request.minPlayers = 2
request.maxPlayers = 4
request.recipients = friends
request.inviteMessage = "Your Custom Invitation Message Here"
request.recipientResponseHandler = { player, response in
self.updateUI(for: player, accepted: response == .accepted)
}
}
func updateUI(for player: GKPlayer, accepted: Bool) {
// update your UI here
}
问题4,一定要注册GKLocalPlayerListener,并且只注册一次,例如:
GKLocalPlayer.local.register(self)