1

我有一个 NSData,我想将它的长度作为十六进制数字附加到它的标题中。我可以使用以下代码来做到这一点:

unsigned int len = [data length];

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

len = 5 的上述代码的结果是“05 00”,但我想要“00 05”。有谁知道这是怎么做到的吗?

标头的长度始终为 2。

谢谢,

4

1 回答 1

2

下面的代码(如您所做的那样)添加长度小于 65536(两个字节)。所以你需要使用:

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

可用功能列表在以下苹果开发者库中的 de 文档中进行了描述:

字节顺序实用程序参考

于 2013-03-08T22:32:30.093 回答