2010-03-13 93 views
1

initWithData不会将我的数据对象正确转换为字符串。当我检查数据对象的长度时,它有一个值。将NSMutableData转换为NSString问题

NSMutableData* receivedData =[[NSMutableData data] retain]; 

NSString* json_string = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding]; 

我做错了什么创建字符串?

+0

你确定你的receivedData没有被损坏吗? – 2010-03-13 15:23:20

+0

如何确定它已损坏?什么是腐败的可能原因? – 2010-03-13 15:41:51

+0

你的数据实际上是一个有效的UTF8字符串吗?如果不是,那会失败。另外,如果你知道你想拥有一个对象,最好[[Obj alloc] init]而不是[[Object convenience]保留] - 你不必做不必要的自动释放 – 2010-03-13 18:10:16

回答

0

我没有完全完成NSURLConnection委托方法。这是我的数据正在建立的地方。

4

由于发布,代码是无稽之谈。您正在创建一个空的不可变数据,然后尝试从所述空数据创建一个字符串。

什么*当我检查数据对象的长度,它有一个值*意味着什么?你的意思是说你有更多的代码没有显示?用某些字节填充可变数据的东西?

此外,如果接收的数据实际上未被编码为UTF-8字符串,则转换将失败。 NSString上有许多方法可以进行有损转换。尝试其中之一。