2010-04-29 4 views
0

XML 파싱을 수행하는 응용 프로그램을 개발 중입니다. [xmlparse parse] 메소드에서 오류를 발견했습니다.iphone에서 xml 구문 분석에 관해서

오류 :

[NSCFString bytes]: unrecognized selector sent to instance 0x3df6310 

2010-04-30 00:09:46.302 SPCiphone2[4234:1003] void SendDelegateMessage 
    (NSInvocation*): delegate (<CFNotificationCenter 0x3d09670 [0x87dca0]>) 
    failed to return after waiting 10 seconds. main run loop mode: 
    kCFRunLoopDefaultMode 

코드 :

responseOfWebResultData = [[NSMutableString alloc] 
          initWithData:responseData 
           encoding:NSUTF8StringEncoding]; 

NSLog(@"result: %@", responseOfWebResultData); 

// starting the XML parsing 
if (responseOfWebResultData) { 
    @try { 
     xmlParser = [[NSXMLParser alloc] initWithData:responseOfWebResultData]; 
     [xmlParser setDelegate:self]; 
     [xmlParser setShouldResolveExternalEntities:YES]; 
     [xmlParser parse]; 
     [responseOfWebResultData release]; 
    } 
    @catch (NSException *e) { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Please" 
                 message:[e reason] 
                 delegate:nil 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:nil]; 
     [alert show]; 
     [alert release]; 
    } 
} 
+0

데이터를 볼 수 있습니까? – dwery

답변

2

당신은 initWithData에있는 NSString *를 전달해서는 안 :. 이 작업을 수행해야합니다

xmlParser = [[NSXMLParser alloc] initWithData:responseData]; 

오류가 당신이 인 NSMutableString *로 선언에도 불구하고있는 NSString *입니다 NSCFString의 인스턴스에 메시지 bytes를 보내는 것을 말한다,이 동적이기 때문에 유형이 지정된 언어이지만 클래스 유형은 다른 것으로 유형 변환하려고 시도하면 자동으로 변환되지 않습니다.

+0

@ lucius, XMLParser가 바이트 코드 데이터 만 필요로한다는 것을 의미합니까? – Tirth

+0

그렇게 생각합니다. 메서드 이름이 "initWithData :"인 경우 NSString이 아닌 NSData 인스턴스를 전달해야합니다. – lucius

+0

좋습니다. 우리가 대답하는 경우 responseOfWebResultData = [[NSMutableString alloc] initWithData : responseData encoding : NSUTF8StringEncoding]; NSLog (@ "result : % @", responseOfWebResultData); 두 라인 모두 다른 코드를 마주 칠 필요가 없습니다. – Tirth

관련 문제