ios - 游戏中心对接会自定义邀请
问题描述
我确信对此有一个“简单”的答案,但我一直很难找到它。
我创建了一个在游戏中心运行的 iOS 纸牌游戏。目前,它会自动确定在线玩家并且工作正常。
我想做的是让用户邀请他们的游戏中心朋友玩。文档并没有真正帮助我。
我正在快速完成我的项目,我觉得我正在处理已弃用的项目和旧文档?
我已经设法获得了用户的朋友列表,然后我假设我需要用该朋友列表实例化一个媒人。
我坚持的是,试图按照苹果的指导方针实施“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:我觉得我错过了一些明显的东西?
我一直在自学,有时在没有任何方向的情况下理解概念需要一段时间,所以请在我的互联网上放轻松。我刚刚开始了解完成处理程序和闭包......
提前感谢您的帮助。
解决方案
^ 符号在 swift 语言中代表什么?
XCode 似乎不喜欢参数中的 * 符号。
那是因为该代码是用 Objective-C 编写的,而不是 Swift。
我假设您正在查看此处找到的文档。如果是这样,那么是的,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
}
推荐阅读
- docker - 有什么办法可以延长 docker 中的 UDP 流超时?
- c++ - 在 Clang 中返回 void 的立即函数
- python - 从python中的.txt文件中获取一组数字的平均值
- python - 在原子导入folium中使用正确的代码后每次都会出错
- javascript - 使用 Notion API 更新数据库中的页面时遇到错误
- java - 使用 quarkus 的 Amadeus SDK
- aws-cdk - AWS CDK MWAA(气流)创建失败
- python - Python如何连接文件名
- php - 在数组上添加前一个值 - PHP
- flutter - 无法在颤振中使用 MultipartFile 发送文件