私の問題は次のとおりです。NSString を NSMutableData オブジェクトにカプセル化したいと考えています。しかし、最初にNSDataにカプセル化せずに、他のアイテムと一緒にやりたいと思います。やっぱりバイトだけじゃないですか。
私の最終的な NSMutableData オブジェクトは次のようになります
[header | stringLength | NSString]
はheader
char でstringLength
あり、unsigned short です。このようにパケットを作成します
unsigned short stringLength = myString.length;
NSMutableData* nData = [NSMutableData dataWithBytes:(const void*)&header length:sizeof(char)];
[nData appendBytes:(const void*)&dataLength length:sizeof(unsigned short)];
[nData appendBytes:(const void*)myString length:stringLength];
次に、これを gkSession 経由で送信し、もう一方の端で文字列の長さを抽出してから、文字列自体を抽出します。
NSString* temp = [NSString alloc];
[data getBytes:(void*)&temp range:NSMakeRange(sizeof(char)+sizeof(unsigned short), stringLenght)];
何らかの理由で、これは私に悪いメモリアクセスを与えています. それmyString.length
は私が期待することとまったく同じではないと思います。ヒントはありますか?前もって感謝します。