0

重複の可能性:
Game Center 経由で NSString を送信する

私はこれに2日間取り組んできましたが、どこにも行きませんでした。誰かが問題に光を当ててくれることを望んでいました.

1) 私は NSMUtableArray を持っています 2) 配列内の各要素は [encoder encodeObject: myArray] によってシリアル化されます。結果が返され、「cards」と呼ばれる構造体「MessageMove」(NSData * 型) MessageMove メッセージに割り当てられます。

....

typedef struct
{
    Message message;
    NSData  *cards;
} MessageMove;

3) カードが NSData 型に変換されたので、構造体自体についても同じことを行いたいので、次のように呼び出します。

NSData *data = [NSData dataWithBytes:&メッセージの長さ:sizeof(メッセージ)];

4)最後に、次のようにデータを他のプレーヤーに送信します

BOOL success = [[GCHelper sharedInstance].match sendDataToAllPlayers:data withDataMode:GKMatchSendDataReliable error:&error];

問題は、受信側がカード データをまったく取得しないことにあります (MessageMove->cards)。これはおそらく、NSData * がリモートに送信されているのではなく、それへのポインターのみが送信されているためです。

実際のデータを送信する方法を知っている人はいますか? 私はこの問題に一日中頭を悩ませていて、どうすれば解決できるのかわかりません

どうもありがとう

4

1 に答える 1

0

プロトコルに準拠したObjective MessageMove-C クラスを作成します。NSCoding次に、それをNSDataオブジェクトにシリアル化し、反対側で逆シリアル化します。詳細については、以前の回答を参照してください。

于 2012-05-03T18:16:29.897 に答える