NSString 值作为 NSData 输出

NSString value as NSData output

我有一个 NSString,它是 @"15"

我希望我的 NSData 也是 15 岁。我知道如何将其转换为值 31 35,但如果我在其上使用 NSLog,我希望我的 NSData 为 15。我不是要求转换,而是要求翻译。我不想更改 NSLog 打印,而是 NSData 值。有办法吗?

您需要先将字符串转换为字节(通过解析)。然后你可以从字节构建 NSData。

将字符串解析为一个整数(假设一个有符号的 32 位整数):

NSString *str = @"15";
int32_t i = (int32_t)[str intValue];

以本地字节序编码:

NSData *data = [NSData dataWithBytes:&i length:sizeof(i)];

注意:如果您打算将该数据传输到另一台计算机,那么您需要决定基本类型的通用字节顺序。 Big endian 传统上使用 htonl()ntohl() 等函数并为其提供便利。如果计算机都是相同的平台,那么您可以使用本机字节顺序,以获得轻微的性能提升和代码简化。