在Swift中从NSData中提取结构 [英] Extract struct from NSData in Swift
本文介绍了在Swift中从NSData中提取结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在制作Game Center游戏.我发送一个包含struct MovePacket
的数据包,如下所示:
I'm making Game Center game. I send a data packet containing a struct MovePacket
like this:
var packet = MovePacket(packetID: 1, move: myMove)
let dataPacket = NSData(bytes: &packet, length: sizeof(MovePacket))
currentMatch!.sendDataToAllPlayers(dataPacket, withDataMode: GKMatchSendDataMode.Reliable, error: nil)
这就像在Objective-C中一样,但是我不明白如何将接收到的NSData
解码回我的struct MovePacket
.这是我的尝试之一:
This works like in Objective-C, but I don't understand how to decode the received NSData
back to my struct MovePacket
. This is one of my tries:
func match(match: GKMatch!, didReceiveData data: NSData!, fromRemotePlayer player: GKPlayer!) {
var packet : MovePacket
data.getBytes(&packet, length: sizeof(MovePacket)) // getting error here: Address of variable 'packet' taken before it is initialized
println(packet) //Variable 'packet' used before being initialized
}
推荐答案
假设您的意思是将其从 NSData
解码回":
Assuming you meant "decode it back from NSData
":
func match(match: GKMatch!, didReceiveData data: NSData!, fromRemotePlayer player: GKPlayer!) {
if data.length == sizeof(MovePacket) {
let packet = UnsafePointer<MovePacket>(data.bytes).memory
println(packet)
} else {
// error: data size is incorrect
}
}
这篇关于在Swift中从NSData中提取结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文