0

iOSで小さなカードゲームを作っています。ネットワーク データ転送を処理するために GameKit/GKsession を使用しています。

私の質問は、複数の情報を NSDataに「パック」して送信する方法です。サーバーが NSData を受信したら、それを解凍して情報を正しい方法で処理する方法。

たとえば、問題なく NSString を送受信できます。しかし、私のゲームでは、UIImage/NSString/NSArray/... など、送受信する必要があるデータ型が異なります。

サンプル プロジェクト GKTank を SDK で見つけました。しかし、私には理解するのが本当に難しいです。私の推測では、いくつかのデータ型が定義されています。

このメソッドでクライアントが送信しているデータの種類(NSString?UIImage?)をサーバーに知らせる方法を教えてください:

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

1 に答える 1

0

あなたは実際に2つのことを探しています。

1) 送信者と受信者が理解するのを妨げるプロトコル。

2)プロトコルにフィードするデータ型にオブジェクトを「シリアライズ」し、オブジェクトのデータを「デシリアライズ」する方法。

1 の場合、JSON、XML (文字列ベース)、プロトコル バッファなどのバイト ベースのプロトコルなど、さまざまな選択肢があります。

2 の場合、(1) で選択したプロトコルのエンコードとデコードに役立つ SBJson、TBXML、protobuf などのさまざまなパーサーがあります。

于 2012-07-11T05:34:38.253 に答える