如何将多个信息打包到NSData并发送/接收/处理数据?

时间:2012-07-11 04:29:32

标签: ios nsdata gksession

我正在iOS上制作小卡片游戏。我正在使用GameKit / GKsession来处理我的网络数据传输。

我的问题是如何“打包”多个信息到NSData并发送它。当服务器收到NSData时,如何解压缩并以正确的方式处理信息。

例如,我可以毫无问题地发送和接收NSString。但我的游戏有不同的数据类型需要发送和接收,如UIImage / NSString / NSArray /...

我在SDK中找到了示例项目GKTank。但对我来说真的很难理解。在我的猜测中,它定义了几种数据类型。

有人能告诉我如何让服务器知道客户端发送的数据类型(NSString?UIImage?):

- (void)receiveData:(NSData *)data fromPeer:(NSString *)peer inSession:(GKSession *)session context:(void *)context

1 个答案:

答案 0 :(得分:0)

你实际上在寻找两件事。

1)困扰发送者和接收者理解的协议;

2)将对象“序列化”为提供给协议的数据类型并“反序列化”对象数据的方法。

对于1,您有各种选择,例如JSON,XML(基于字符串)和基于字节的协议,例如协议缓冲区。

对于2,你有各种解析器,如SBJson,TBXML和protobuf,可以帮助你编码和解码你在(1)中选择的协议。