NSString值为NSData输出

时间:2016-02-10 17:01:59

标签: objective-c nsstring nsdata

我的NSString@"15"

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

2 个答案:

答案 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。

相关问题