2012-07-28 2 views
0

나는있는 NSArray 일부 JSON을 구문 분석하려고 해요 그러나 나는 다음과 같은 오류 받고 있어요 :문자열

[__NSCFDictionary length]: unrecognized selector sent to instance 0x6d7a160 

이 오류를 던지고 코드의 영역은 다음과 같습니다

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 


NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
NSError* error; 
NSLog(responseString); 
NSArray *jsonArray = [NSJSONSerialization 
      JSONObjectWithData:responseData 
      options:NSJSONReadingMutableContainers 
      error:&error]; 
parties2=jsonArray; 
NSLog([parties2 objectAtIndex:0]); //Exception thrown 

[tableView reloadData]; 

}

parties2는 이전과 같이 정의된다

parties2=[NSArray arrayWithObjects:nil]; 
,691 이 기회는 내가 아주 간단한 일을 누락되도록 ObjC, 나는 닷넷 C#을 배경에서오고 내 최초의 벤처
[{"Name":"party 1.1","GreekName":"FoA 1","GreekID":325,"schoolName":"FoA University","schoolID":10,"numberAttending":0,"maxNumberAttending":1000,"price":15.0},{"Name":"party 1.2","GreekName":"FoA 1","GreekID":325,"schoolName":"FoA University","schoolID":10,"numberAttending":0,"maxNumberAttending":300,"price":20.0},{"Name":"party 1.3","GreekName":"FoA 1","GreekID":325,"schoolName":"FoA University","schoolID":10,"numberAttending":0,"maxNumberAttending":5000,"price":25.0},{"Name":"party 2.1","GreekName":"FoA 2","GreekID":326,"schoolName":"FoA University","schoolID":10,"numberAttending":0,"maxNumberAttending":500,"price":25.0},{"Name":"party 2.2","GreekName":"FoA 2","GreekID":326,"schoolName":"FoA University","schoolID":10,"numberAttending":0,"maxNumberAttending":300,"price":30.0},{"Name":"party 3.1","GreekName":"FoA 3","GreekID":327,"schoolName":"FoA University","schoolID":10,"numberAttending":0,"maxNumberAttending":0,"price":50.0},{"Name":"party 5.1","GreekName":"FoA 5 ","GreekID":329,"schoolName":"FoA University","schoolID":10,"numberAttending":0,"maxNumberAttending":300,"price":15.75}] 

처럼 363,210

내 ResponseString 보인다.

감사합니다 :)

+0

에 '* NSMutableDictionary'이 경우에 I가 표시되지 않습니다하지만 왜. '오류'가 업데이트 되었습니까? 데이터가 다시 해석되도록 (예 : 'NSJSONSerialization'클래스와 함께) 다시 시도해 볼 수 있습니다. 결과를 정상적으로 확인하려면 'NSObject'메서드를 사용할 수 있습니다. 'if ([jsonArray isKindOfClass : [NSArray class]]) ...'. 디버깅하는 동안 내가 jsonArray의 설명을 인쇄하는 경우 –

+0

그래서 오류가 무기 호입니다 (분명히 내가 배열을 NSLog 수없는 이유는 무엇입니까?)이 배열처럼 보이는 말한다)하고 그것에게 NSArray를 좋아 보이는 있도록 if 문을 입력했다. 그것도 여전히 나에게 [_NSCFDictionart length]를주었습니다 : unrecongnized selector가 인스턴스 –

답변

0

귀하의 JSON 구문 분석이 정확합니다. 오류 때문에 당신의 NSLog() 문에 잘못된 구문으로 발생되고있다.

NSLog()는 인수로있는 NSString 소요되지만 대신 오류의 원인이되는 (즉, 네있는 NSArray의 첫 번째 요소)이있는 NSDictionary을 통과하려고한다.

이에 대한 해결책은 다음과 같이 문자열에있는 NSDictionary 객체를 변환 할 수있는 NSString 형식 문자열을 사용하는 것입니다

: 그것은 분명히 돌아 오는 것

NSLog(@"%@",[parties2 objectAtIndex:0]); 
+0

으로 전송되었습니다. 감사합니다. 그렇습니다. 파티 2가 무효화되었을 때 코드를 당기는 문제가 된 다른 코드 영역에서 일어나는 일을 디버깅하려고했습니다. . –