2014-06-16 5 views
0

서버에서 IOS로 JSON을 받으면 때때로 parseData가 NULL이됩니다. 심지어 내가 몇 초 기다려 사용하려고 서버에서 데이터를 다시, 그것은 여전히 ​​NULL을 계속 반복 루핑을 확인하십시오. 내가 내 JSONFetcher.mJSON parseData가 가끔씩 나타납니다

NSString *responseData = [[NSString alloc] initWithData:Oridata encoding:NSUTF8StringEncoding]; 
SBJsonParser *jsonParser = [SBJsonParser new]; 
parseData = (NSDictionary *) [jsonParser objectWithString:responseData error:nil]; 

은 "Oridata"데이터를 NSLOG이 부분을했다 사용하지만 때로는 "parseData"데이터가 NULL이 될 때

이상한 부분

이다. 그리고 "Oridata"가 json 데이터의 반환 그룹 일 때만 발생합니다.

JSONFecther 파일의 출처를 확인하지 못했지만 "Copyright (C) 2009 Stig Brautaset"에서 가져온 파일입니다. 어떤 사람이 문제가 어떻게 나타나는지 알고 있습니까? 고마워.

+1

오류 매개 변수를 사용하여 반환되는 상태를 확인하는 방법은 어떻습니까? 그리고'responseData'를 로깅합니다. – Wain

+0

오류 매개 변수를 사용하는 방법을 알려주시겠습니까? 몇 가지 예를 들어 줄 수 있니? 감사! – Lazarus

+0

오류입니다 >> 오류 도메인 = org.brautaset.SBJsonParser.ErrorDomain 코드 = 0 "예기치 않은 입력 끝"UserInfo = 0xa16cda0 {NSLocalizedDescription = 예기치 않은 입력 끝} – Lazarus

답변

0

오류 Unexpected end of inputOridata이 불완전하다는 것을 의미합니다. 서버가 유효하지 않은 데이터를 반환했거나 처리하기 전에 모든 데이터를 다운로드하지 않았습니다.

로그 responseData을 확인하고 내용을 확인하십시오. 그런 다음받은 내용과 방법 (Charles를 사용하고 다운로드 연결에서 데이터 수집을 확인)을 확인하십시오.

+0

"parseData"모양을 확인하려고했습니다. 프로세스가 너무 오래 걸리고 시스템은 값을 끝내기 전에 호출합니다. 그냥 "parseData"를 로그하면됩니다. 이 부분을 예방하거나 해결할 방법이 있습니까? – Lazarus

+0

Parsedata or oridata? 당신은 어떻게 oridata를 얻습니까? – Wain

+0

Oridata에는 항상 데이터가 있었지만 문제는 항상 parseData에 나타납니다. – Lazarus

관련 문제