2014-02-24 4 views
1

작동하지 않습니다있는 NSString에서 JSON에있는 NSDictionary에서 값과 장소를 얻기 나는 문자열로있는 NSDictionary 변수에서 JSON을 추출하기 위해이 코드를했다 : 그것은 매우 잘 작동내 이전 응용 프로그램에서

NSString *task_id = [jsonString objectForKey:@"key"]; 

을하지만 어떤 이유로 원 더 이상 내 새 앱에서 일하지 않습니까? 대신이 오류가 발생합니다.

-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x14d7bda0 

왜이 기능이 작동하지 않는지 알고 계십니까?

피터

+4

는 것 같습니다. – Ares

+0

1) JSON을 디코딩하기 전에 NSLog를 NSLog하십시오. (NSData를 인쇄 가능하게 만들기 위해'[[NSString alloc] initWithData : dataObjwect encoding : NSUTF8Encoding]'을 수행하십시오.) 2) 디코딩 결과를 NSLog로 출력하십시오. 사전은'{}'로 둘러싸여 있고 사전은'()'로 둘러 쌓여 있음을 관찰하십시오. –

답변

1

는 jsonString이 NSDictionary 있는지 확인하십시오 : 당신의 jsonString는, 참으로, 문자열이 아닌 사전처럼

if([jsonString isKindOfClass:[NSDictionary class]]) { 
    NSString *task_id = [jsonString objectForKey:@"key"]; 
} else { 
    // is not a dictionary 
    NSLog(@"%@", jsonString); 
} 
+0

사전이 아니므로, 나는 드로잉 보드로 돌아가서 이유를 알아 보겠습니다. 도와 주셔서 감사합니다 :) –

+1

그래, 드로잉 보드가 최선의 선택입니다 :) –

+1

업데이트 : if ([jsonString isKindOfClass : [NSDictionary Class]]) {작동하지 않았지만 코드를 'Class'에서 'class' 대단 했어 :) –