0

我正在向某个服务器发送 XML 请求并使用 NSURLConnection 从中获取一些响应数据:

-(void)connectionDidFinishLoading:(NSURLConnection *)connection  
{  
    NSMutableString *receivedString = [[NSMutableString alloc] initWithData:_receivedData encoding:NSUTF8StringEncoding];       
    NSLog(@"Size of DATA: %d",[_receivedData length]);  
    NSLog(@"Body: %@", receivedString);  
}  

当我的数据长度约为 4000 时 - 我通常可以在输出中看到接收到的数据。但是当数据长度变大(6000、10000等)时,输出显示我的receiveString变为null!

当它的长度变得更大时,我怎样才能将我的数据保存到字符串中?谢谢你。

4

1 回答 1

2

你确定你的数据是用 编码的NSUTF8StringEncoding吗?仔细检查返回给您的数据。 如果编码未正确表示数据,initWithData:encoding:将返回。nil

一个简单的测试方法是使用相同的数据对象,并创建一个包含相同数据的增量片段的字符串,直到它失败,然后查看导致它失败的字节。

我敢打赌,你在该数据中有一个不正确(或不匹配)的编码字节。

于 2012-09-07T22:29:45.437 回答