Ios 从游戏中心发送和接收数据:Swift

Ios 从游戏中心发送和接收数据:Swift,ios,swift,game-center,gamekit,Ios,Swift,Game Center,Gamekit,我正在创建一个使用GameCenter的游戏,并尝试发送和检索数据 这就是我发送数据的方式:(功能“sendData”由GameCenter随GameKit提供) “GCHelper”是我正在使用的一个类,它包含游戏中心的许多功能,如果您感兴趣,可以进一步下载这些问题。我只需要调用它来访问函数 然后,为了检索数据,我尝试使用以下命令: nick.match(GKMatch, didReceive: Data, fromPlayer: String) 注:我没有填写上述任何参数 下面是我用来检索

我正在创建一个使用GameCenter的游戏,并尝试发送和检索数据

这就是我发送数据的方式:(功能“sendData”由GameCenter随GameKit提供)

“GCHelper”是我正在使用的一个类,它包含游戏中心的许多功能,如果您感兴趣,可以进一步下载这些问题。我只需要调用它来访问函数

然后,为了检索数据,我尝试使用以下命令:

nick.match(GKMatch, didReceive: Data, fromPlayer: String)
注:我没有填写上述任何参数

下面是我用来检索数据的函数:

我使用的函数“match()”是GCHelper类的一部分。GCHelper允许您更轻松地创建GameCenter游戏。以下是一个链接,以备您参考:

问题 现在我已经向您展示了所有的方法,我将如何使用前面的方法来检索数据?它的一个参数是'fromPlayer',要求输入playerId(字符串),但是我怎么知道其他playerId是什么呢?更好的是,我如何找回它

如果您认为这不是处理检索数据的好方法,我如何才能做得更好?还有别的办法吗

关键事实: 游戏需要两个人,数据只在这两个人之间交换。我需要知道如何发送和检索数据之间的2。
谢谢你的帮助!如果您有任何问题,请告诉我。

这是我用来检索数据的函数:

open func match(_ theMatch: GKMatch, didReceive data: Data, fromPlayer playerID: String) {
}
现在,我发送的数据是一个字符串。因此,我创建了一个变量,用于取消归档数据并将其设置为字符串格式

let myString = NSKeyedUnarchiver.unarchiveObject(with: data) as! String
在这之后,我需要一种方法将该字符串从视图控制器或游戏中心文件获取到我的游戏场景。我只是使用UserDefaults存储了数据

let user = UserDefaults.standard
user.set(myString, forKey: "myString")
然后在我的场景中,我创建了一个计时器,它每隔几秒钟检查一次,看是否有变化。它存储这些值,以便在新值到达时进行比较,如果不同,它会对其进行处理,例如:更新玩家点数


注意:这是我发现的有效方法,其他人可能有更好的方法,但对我来说效果很好。

您能解决这个问题吗?在我的一个游戏中,我遇到了类似的问题。是的,我有,我现在不在家,但当我在家的时候,我会为你回答!好的,谢谢。为了清楚起见,我想向其他玩家发送/接收本地分数字符串,并在开始比赛之前更新UI。
let myString = NSKeyedUnarchiver.unarchiveObject(with: data) as! String
let user = UserDefaults.standard
user.set(myString, forKey: "myString")