iPhoneでマルチプレイヤーゲームを構築していて、ゲーム内の他のプレイヤーに文字列データを送信する必要があります。そのためには、NSString *文字列データをNSDataオブジェクトにカプセル化する必要があります。 ...ここに私のコードが構成されている方法の例ですiOSの開発:NSDataオブジェクトに文字列をカプセル化するにはどうすればよいですか?
typedef struct
{
PACKETTYPE packetType;
??? stringToSend; //<---not sure how to store this
} StringPacket;
StringPacket msg;
msg.packetType = STRING_PACKET;
msg.stringToSend = ... // <---not sure what to do here
NSData *packet = [NSData dataWithBytes:&msg length:sizeof(StringPacket)];
だから私の質問はStringPacket
が私のヘッダで定義された構造体である場合、私は簡単にdataWithBytes
メソッドを呼び出すことができるように、どのようなタイプstringToSend
プロパティがあるべきであり、 NSData
のNSDataオブジェクトにパケットデータをカプセル化するには?
あなたの知恵に感謝します!
ありがとう、ニコライ!私はあなたが "パケット文字列の長さで格納する"という意味では不明です、文字列の長さを格納する追加のプロパティを作成することを意味ですか?また、私はあなたがNSDataを追加することによって何を意味するのか不明です。あまり仕事がなければ、簡単な例を見せてもらえますか?再度、感謝します! – BeachRunnerFred
わかりやすく読みやすくするために、私の投稿に編集内容を追加しました。 –
ありがとう、ニコレイ、非常にまっすぐ進むようです。もう1つの質問は、データが反対側に到着し、NSDataクラスの 'bytes'メソッドを使用してデータにアクセスするとき、文字列の長さが動的である場合、これらの個々のチャンクにどのようにアクセスできますか? – BeachRunnerFred