1

NSDataがあり、その長さを16進数としてヘッダーに追加したいと思います。私は次のコードを使用してこれを行うことができます:

unsigned int len = [data length];

NSMutableData *sendData = [[NSMutableData alloc] initWithBytes:&len length:2];
[sendData appendData:data];

上記のlen=5のコードの結果は「0500」ですが、代わりに「0005」が必要です。誰かがそれを行う方法を知っていますか?

ヘッダーは常に長さ2になります。

ありがとう、

4

1 に答える 1

2

以下のコードは、長さが65536(2バイト)未満であることを(あなたが行うように)追加します。したがって、以下を使用する必要があります。

uint16_t len = CFSwapInt16HostToBig([data length]);
NSMutableData *sendData = [[NSMutableData alloc] initWithBytes:&len length:2];
[sendData appendData:data];

使用可能な関数のリストは、以下のアップルデベロッパライブラリのドキュメントに記載されています。

バイトオーダーユーティリティリファレンス

于 2013-03-08T22:32:30.093 に答える