0

我正在尝试向无线设备发送一些数据。我要发送的数据是一个字节数组(即Byte stuff[4])。我已经用串行电缆完成了这项工作,并且工作正常。但是对于无线版本,NSData 对象将字节合并在一起。假设前四个字节是 24、130、255 和 255。在十六进制中,这些是 18、82、FF 和 FF。我想单独发送字节,但是当我检查字节 tha 中的内容时,字节是 0xffff8218。我不想发送 0x00000000 形式的东西,我更愿意发送 0x00,一次只发送一个字节。如何让 NSData 创建一个只有一个字节而不是四个字节的对象?谢谢你。

还有一些代码:这是使用 GCDAyncSocket.h 和 .m

Byte testing[15];
NSData *stuff;

基本上加载一个字节数组,然后将其放入 NSData 以便能够发送

testing[0]=24;testing[1]=130;testing[2]=255;testing[3]=255;testing[4]=131;testing[5]=255;testing[6]=255;testing[7]=244;testing[8]=5;testing[9]=65;testing[10]=73;testing[11]=83;testing[12]=48;testing[13]=0;testing[14]=224;
stuff = [NSData dataWithBytes:&testing length:15];

当我在那之后和发送之前放置一个断点时,我看到“stuff”的第一个字节是 <0xffff8218>

4

1 回答 1

0

NSData管理一个字节集合——它不知道这些字节表示的数据类型、数据的字节顺序等。您可以NSData使用该方法从对象中获取字节,该-bytes方法为您提供const void *, 和然后,您可以根据需要一次发送一个字节。

于 2012-04-25T20:09:48.320 回答