2013-07-15 4 views
1

NSXMLParser 프로세스가 완료 될 때까지 기다린 다음 다른 프로세스를 계속 진행하려고합니다. NSXMLParser를 사용하여 XML 데이터를 구문 분석합니다.NSXMLParser가 iOS에서 완료 될 때까지 기다리는 방법

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict 
{ 
    NSLog(@"Did start element"); 
    if ([elementName isEqualToString:@"FILENAME"]) 
    { 
     XML_FIELD = FILENAME_CLOUD2; 
     NSLog(@"found rootElement"); 
     return; 
    } 
    else if ([elementName isEqualToString:@"UPLOADTIME"]) 
    { 
     NSLog(@"found rootElement"); 
     XML_FIELD = UPLOADTIME2; 
     return; 
    } 

} 

didEndElement() :

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 
    NSLog(@"Did end element"); 
    if ([elementName isEqualToString:@"FILENAME"]) 
    { 
     NSLog(@"rootelement end"); 
    } 
    XML_FIELD = UNIMPORTANT2; 
} 

foudCharaters() : 코드 위

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{ 
    if (XML_FIELD == FILENAME_CLOUD2) 
    { 
     NSLog(@"Value %@",string); 
     [FileCompletedArray insertObject:string atIndex:0]; 
    } 
    else if (XML_FIELD == UPLOADTIME2) 
    { 
     NSLog(@"Value %@",string); 
     [UploadTimeArray insertObject:string atIndex:0]; 
    } 
} 

이 NSXMLParser하지만 내 응용 프로그램에서 데이터를 가져 오는 데 사용됩니다

내 코드입니다 parse xml 프로세스가 완료 될 때까지 기다려야합니다. dispatch()을 사용할 수 있습니까?

+0

WHT R? – Kasaname

+0

@ 카사노 메 : 내 질문을 업데이트했습니다. thanks – NGOT

+1

나는 ParseXML 또는 NSParseXML을 모른다. NSXMLParser를 의미합니까? –

답변

7

NSXMLParser 완전하게 작동 동기. parse 메서드가 반환되면 구문 분석이 완료됩니다 (또는 오류와 함께 실패했습니다). 그래서 그것이 완료 될 때까지 기다릴 필요가 없습니다.

+0

감사합니다 Martin R. 더 도와 주실 수 있습니까?이 질문에 대답 해주십시오 : http://stackoverflow.com/questions/17647898/can-not-pass-value-of-textfield-to-other-viewcontroller-in-ios ? noredirect = 1 # comment25699999_17647898 – NGOT

1

매우 간단한 그것을 ..

NSXMLParser *parser=[[NSXMLParser alloc] initWithData:data]; 
parser.delegate=self; 

if([parser parse]){ 
    NSLog(@"Parsing Finished"); 
}else{ 
    NSLog(@"Parsing Failed"); 
} 

파서 대리인 기능 기능 parse가 호출

- (void)parserDidStartDocument:(NSXMLParser *)parser{ 
    NSLog(@"Parsing started"); 
} 

호출합니다 .. 유 묻는