NSData转换为NSString

时间:2012-10-31 20:02:14

标签: objective-c nsstring nsdata

我发现这个方法可以将NSData转换为NSString对象。

NSData *data = //some data
NSString *string = [NSString stringWithFormat:@"%@", data];

如何解码数据? NSUTF8StringEncoding是否已应用?

谢谢!

3 个答案:

答案 0 :(得分:7)

这是推荐的方法。而是使用:

NSString *newString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

这将确保您具有指定的数据编码。

答案 1 :(得分:4)

在这种情况下,stringWithFormat:方法将向NSData对象发送description消息,获取结果,并将其用于新创建的字符串的内容。基本上,结果与

相同
NSString *string = [data description];

根据NSData's documentationdescription返回

  

NSString对象,包含NSData属性列表格式中接收者内容的十六进制表示。

答案 2 :(得分:0)

您可能应该使用NSString *string = [[NSString alloc] initWithData: data encoding:SomeFormOfEncoding];

您可以查看方法详情here

可以看到编码形式here