2013-03-07 2 views
1

귀찮게해서 죄송하지만 도움이 될만한 주제를 찾지 못했습니다.iOS에서 NSJSONSerialization을 사용할 때 데이터 제한이 있습니까?

NSURLConnection을 통해 NSMutableRequest를 사용하여 JSON 데이터를 가져옵니다. 데이터가 수신되면 [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]을 사용하여 일련 화합니다.

더 작은 JSON 파일을 가져올 때 제대로 작동하지만 더 큰 JSON 파일을 받으면 작동하지 않습니다. 로그 NSLog(@"--->: %@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);을 쓰고 출력은 --->:으로 시작하는 로그 레코드가 아니라 하나가 아닌 두 개입니다. 첫 번째 출력에는 JSON의 첫 번째 부분이 포함되고 두 번째 출력에는 JSON의 나머지 부분이 포함됩니다.

이 오류는 필요에 따라 NSDictionary를 만들 수 없습니다. 수신 된 모든 "더 큰"JSON은 7500 - 8000 자 사이의 어딘가에 나뉩니다. 내 질문은 : NSJSONSerialization 처리 할 수있는 한계가 있습니까? 내 관점에서 볼 때 8 킬로바이트의 데이터를 처리 할 수있는 것처럼 보입니다. 그것을 무시할 수있는 방법이 있습니까?

통찰력을 가져 주셔서 감사합니다.

+0

iOS의 JSON 파서를 '50 kB' -'100 kB'응답에 사용했습니다. 제로 문제가있었습니다. – holex

+0

정확한 문제는 무엇인지 잘 모르겠지만 JSON 데이터는 일반적으로 약 500K이며 NSJSONSerialization을 사용하여 변환하고 NSLog를 사용하여 로그에 덤핑하는 데 문제가 없습니다. 나는 지금까지 어떤 한계도 보지 못했다. – ahwulf

답변

0

답변 해 주셔서 감사합니다. 마침내 내 문제에 대한 해결책을 찾았습니다. 문제는 didReceiveData 메소드에 데이터를 잘못 저장하는 데있었습니다. [receivedData appendData:data];을 적용한 후에 모든 것이 잘 작동하기 시작합니다. 8kB 문제는 아마도 한 번에 전송 된 데이터 덩어리 일 것입니다.