我的NSString
是@"15"
。
我希望我的NSData
也是15岁。我知道如何将其转换为获取值31 35
,但如果我在其上使用15
,我希望我的NSData为NSLog
。我不是要求转换,而是要求翻译。我不想更改NSLog
打印,而是更改NSData
值。反正有吗?
答案 0 :(得分:2)
将字符串解析为整数(假设有符号的32位整数):
NSString *str = @"15";
int32_t i = (int32_t)[str intValue];
以原生端编码:
NSData *data = [NSData dataWithBytes:&i length:sizeof(i)];
注意:如果您打算将该数据传输到另一台计算机,则需要确定基本类型的公共字节序。 Big endian传统上使用和促进了htonl()
,ntohl()
等功能。如果计算机都是相同的平台,那么您可以使用本机字节序,以获得轻微的性能提升和代码简化。 / p>
答案 1 :(得分:1)
您需要先将字符串转换为字节(通过解析)。然后你可以从字节构建NSData。