2012-09-11 1 views
-1

안녕하세요! 나는 내가하고있는 일에 무엇이 잘못되었는지 묻고 싶을뿐입니다. 나는 이틀 동안이 일을하고 있지만 아직도 나는 그것을 할 수 없다. "인식 할 수없는 선택기가 인스턴스 0x748b800로 전송되었습니다."라고 표시됩니다. 내가하고있는 일은 json 반환 값을 파싱하는 것입니다.인식 할 수없는 선택자가 인스턴스로 전송 됨 0x748b800

{ 
    "data": [ 
     { 
     "name": "John Patola", 
     "id": "123444432" 
     }, 
     { 
     "name": "Joshua Valdez", 
     "id": "22234567778" 
     } 
] 
} 

내가 NSArray *storage라는 배열에 저장하려면 : 다음은 샘플 JSON 반환 값입니다. 이 코드를 실행하면, 나는 오류를 가지고

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ 
[self.rData appendData:data]; 
} 
-(void)connection: (NSURLConnection *)connection didFailWithError:(NSError *)error{ 
[rData release]; 
[connection release]; 
} 
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{ 
NSString *myVar = [[[NSString alloc] initWithData:rData encoding:NSUTF8StringEncoding] autorelease]; 
NSArray *storage =[[(NSDictionary *)myVar objectForKey:@"data"]retain]; // this line seems to be the error 
NSLog(@"%i", [storage count]); 

"인식 할 수없는 선택기 예를 0x748b800로 전송" 다음은 내 코드입니다. 내가 말한 선이 정말로 오류라고 생각합니까? 어떻게 해결할 수 있습니까? 사전에 도움을 주셔서 감사합니다. ;-)

+1

내가하고있는 일을 그만하고 나가서 기본적인 디버깅 기술을 배우는 것이 좋습니다. 중단 점을 설정하는 방법, 단계를 밟아 코드를 검사하는 방법을 살펴보아야합니다. 그런 다음 "인스턴스로 전송 된 인식 할 수없는 선택기"와 그 의미 및 디버깅 방법과 같은 일반적인 오류를 읽어야합니다. –

+0

''알 수없는 선택기가 인스턴스 0x748b800에 전송되었습니다 .'''는 제공 할 수있는 모든 오류 로그입니까? – janusbalatbat

+0

나는 나의 대답을 바로 잡았다. 그것은 나를 위해 작동합니다. –

답변

1

프로젝트에서 JSON 키트를 추가합니다.

-

-(void)JsonParsing:(NSString *)string; 

그런 다음 여기에 당신의 문자열을 구문 분석

당신의 viewController.m 파일에
#import "SBJSON.h" 
#import "JSON.h" 

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    [self.rData appendData:data]; 
} 
-(void)connection: (NSURLConnection *)connection didFailWithError:(NSError *)error 
{ 
    [rData release]; 
    [connection release]; 
} 
-(void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    NSString *theXMLString = [[NSString alloc]initWithBytes:[self.rData mutableBytes] length:[self.rData length] encoding:NSUTF8StringEncoding]; 
    [self JsonParsing:theXMLString]; 
} 

을 가져 당신의 viewController.h 파일의 방법을 선언

0

는이 작업을 수행 :

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

    NSError *error = nil; 
    NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData: rData options: NSJSONReadingMutableContainers error: &error]; 

    if (!jsonArray) { 
     NSLog(@"Error parsing JSON data: %@", e); 
    } else 
    { 
     NSArray *arrValues = [jsonDict objectForKey:@"data"]; 
     for(NSDictionary *item in arrValues) { 
     NSLog(@"Item: %@", item); 
    } 
} 
관련 문제