2012-07-11 50 views
0

我正在iOS上製作一個小型紙牌遊戲。我使用GameKit/GKsession來處理我的網絡數據傳輸。如何將多個信息打包到NSData和發送/接收/處理數據?

我的問題是如何「打包」多個信息到一個NSData併發送它。當服務器收到NSData時,如何解壓縮並以正確的方式處理信息。

例如,我可以發送和接收沒有問題的NSString。但我的遊戲有不同的數據類型需要發送和接收,如UIImage/NSString/NSArray/...

我在SDK中找到了示例項目GKTank。但對我來說真的很難理解。在我的猜測中,它定義了幾種數據類型。

有人能告訴我如何讓服務器知道什麼樣的數據的客戶端在此方法來發送(的NSString UIImage的?):

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

回答

0

你實際上是在尋找兩件事情。

1)擾亂髮送者和接收者理解的協議;

2)將對象「序列化」爲提供給協議的數據類型並「反序列化」對象數據的方法。

對於1,您有各種選擇,如JSON,XML(基於字符串)和基於字節的協議(如協議緩衝區)。

對於2,您有各種解析器,如SBJson,TBXML和protobuf,可幫助您對(1)中選擇的協議進行編碼和解碼。

+0

但我認爲使用JSON或XML對我的簡單紙牌遊戲來說太「沉重」了。無論如何感謝您的答案。 – ChaosKIDs 2012-07-13 06:51:42

相關問題