我正在 MAC OS 中进行套接字编程,我可以在其中打开套接字,但是在向服务器发送请求期间遇到类型猫问题,如下所述:
如果我们在下面给出的 NSString 中有一些值:
NSString *Message=@"abc";
当我将它转换为 NSData 或 NSMutableData 时:
NSData *data = [[NSData alloc] initWithData:[Msg dataUsingEncoding:NSASCIIStringEncoding]];
如果我想将这个 NSData 读入字符串,这里 Message 现在被转换为 NSData,我可以如下阅读:
NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
现在的问题是我有 value=2 和 value=300,它们代表数据类型和对服务器的请求类型(当我们向服务器发送请求时)。 我必须在一个字节中转换 value=2 并且它不应超过 1 字节大小。所以我采用了如下所示的数据类型 Byte :
Byte value = 2;
现在我需要知道如何在不转换为 NSString 的情况下将 Byte 转换为 NSData,然后再转换为 NSData(否则 2 被视为字符串,字节转换可能不同)和
我已经在一个字节中转换了另一个 value=300,它不应超过 2 个字节大小。所以我采用如下所示的数据类型 short int:
short int j = 300;
现在我还需要知道如何将 Byte 转换为 NSData 而无需转换为 NSString 然后再转换为 NSData(否则 300 被视为字符串,字节转换可能会有所不同)。
实际上在我们的服务器中我们有一个数组,其中第一个字节表示第一个数据类型为 2 表示一个字节大小,另一个值 = 300 表示两个字节大小。我需要知道如何将 Byte 和 short int 转换为 NSData,在转换为 NSData 之后,我想将 NSData 转换为 Byte 和 short int 值,就像我在上面的示例中提到的 NSString 情况下所做的那样。因为我必须将所有这些 NSMutableData 相互附加并包括一个 Nsstring 以附加 NSMutableData 并作为请求发送到服务器。如果有人对此问题有任何想法,请帮助我。
谢谢
最佳答案
您可以使用 dataWithBytes 从字节和字节创建 NSData 以将 NSData 转换为字节数组。 引用Apple's Dev Doc为此。
关于ios - 将 Byte、short int、int 转换为 NSData 或 NSMutableData 而不转换为 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7817169/