我尝试了以下代码将NSData转换为十六进制字符串值,但都是错误的?
这里“result”是我NSdata
我需要一个十六进制字符串作为输出,但我没有得到
NSUInteger dataLength = [result length];
NSLog(@"%d",dataLength);
NSMutableString *string = [NSMutableString stringWithCapacity:dataLength*2];
const unsigned char *dataBytes = [result bytes];
for (NSInteger idx = 0; idx < dataLength; ++idx) { [string appendFormat:@"%02x", dataBytes[idx]];
}
NSLog(@"%@",string);
请问这个怎么兑换
更新:结果数据包含加密字符串。我想转换为十六进制值
5条答案
按热度按时间zphenhs41#
这里有一个我用来做这个的分类。它只是给你十六进制的数据的所有字符。没有换行符或任何东西。
4c8rllxm2#
最简单的解决方案是遍历NSData的字节并从中构造NSString。使用[yourData bytes]访问字节,并将字符串构建为NSMutableString。
下面是一个使用NSData类别实现的示例
xghobddn3#
这是通过整数运算进行的转换:
ru9i0ody4#
Swift 2 version
bihw5rsg5#
这个答案是在Xcode 10 Playground中运行的Swift 4.2。
下面是输出: