でデータを送受信する:ゲームセンター - 私は別のプレーヤーから次のような構造を送信しようとしていますスウィフト
struct GamePacket {
var action: String
var pointArray: [CGPoint]
}
私はGamePacket
を変換する正しい方法を考え出す苦労していますData
に戻ってください。
func send(packet: GamePacket) {
//convert GamePacket to Data here
let data = Data.init()
var remotePlayerArray = [GKPlayer]()
if let currentPlayer = self.currentPlayer, let match = self.match, let playerArray = self.match?.players {
for player in playerArray {
if player != currentPlayer {
remotePlayerArray.append(player)
}
}
do {
try match.send(data, to: remotePlayerArray, dataMode: GKMatchSendDataMode.reliable)
}
catch {
print("connectionError")
}
}
}
そしてがを受信するためのコード:ObjectiveC
で書かれたいくつかのサンプルから
func match(_ match: GKMatch, didReceive data: Data, fromRemotePlayer player: GKPlayer) {
//convert Data to GamePacket here
}
、私が管理ここ
は、私がこれまでがパケットを送信するためにしているコードです次のようなものを使用してGamePacket
をData
に変換してください。
let data = NSData(bytes: &packet, length: MemoryLayout<GamePacket>.size) as Data
しかし、私は、受信側でGamePacket
にData
バックを変換する方法を見つけ出すことはできません、また私は確かに、これはそれを行うための正しい方法であると思います。
どのようなヘルプも非常に評価されています。ありがとうございました。