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 など)、Output は自分の receivedString が null になることを示しています!

長さが大きくなったときに、データを文字列に保存するにはどうすればよいですか? ありがとうございました。

4

1 に答える 1

2

あなたのデータは でエンコードされていNSUTF8StringEncodingますか? 返されたデータを再確認してください。 データがエンコーディングによって適切に表現されていない場合initWithData:encoding:に返されます。nil

これをテストする簡単な方法は、同じデータ オブジェクトを使用し、失敗するまで同じデータの増分部分で文字列を作成し、失敗の原因となったバイトを調べることです。

そのデータに不適切な (または不一致の) エンコードされたバイトが含まれていることは間違いありません。

于 2012-09-07T22:29:45.437 に答える