0

我需要转换NSString为字节-通过 tcp 发送。

 NSString *dataS= @"ran"; // is in byte  114 97 110 

但是如果我使用它NSData来转换它(我最后需要它作为 NSData,因为我要添加多个 NSData):

NSData *requestData = [dataS dataUsingEncoding:NSUTF8StringEncoding];

我得到:<72616e>记录解决方案时。它不是真的。我可能在这里遗漏了一些东西。

使用 :[ToSend characterAtIndex:k]进行转换,给出整数-我想使用 NSData 进行转换。我该怎么做?

4

2 回答 2

3

您以正确的方式转换字符串。requestData包含三个字节。在输出中,这些字节显示为十六进制:十六进制的 72 是十进制的 114,十六进制的 61 是十进制的 97,十六进制的 6e 是十进制的 110。

要将字节传递给较低级别​​的方法,您可以通过调用获取数据长度,[requestData length]并通过调用获取指向字节的指针[requestData bytes]

于 2013-03-06T10:14:03.200 回答
0

您做得对,日志记录显示它是这样的,因为这是记录器为输出格式化它的方式,仅此而已。

以字节为单位的 114 97 110 是十六进制的 <72616e>。

于 2013-03-06T10:12:52.490 回答