저는 iPhone 응용 프로그램을 개발 중이며 xml 파서에 문제가 있습니다. 여러 XML 파일에서 여러 값을 확인해야하지만 XML 구문 분석기가 활성화되어 있으면 다른 작업을 수행 할 수 없습니다. 이것은 xml을 검사하는 것이주의를 기울이지 않고 백그라운드에서 이루어져야하기 때문에 원하는 방식이 아닙니다. 여기 내 코드 중 일부는 충분하다.XML 파서 Xcode 정말 느림
appDelegate.datavalues = [[NSMutableArray alloc] init];
for(int i = 0; i < [headarray count]; i++){
NSMutableArray *infoarray = [[NSMutableArray alloc]initWithArray:[headarray objectAtIndex:i]];
NSString *IP = [infoarray objectAtIndex:1];
NSString *Unique = [infoarray objectAtIndex:2];
NSString *Port = [infoarray objectAtIndex:3];
NSString *relay = (NSString *)[infoarray objectAtIndex:4];
NSString *input = (NSString *)[infoarray objectAtIndex:5];
NSLog(@"relay%@",relay);
NSString *urlAddress = [NSString stringWithFormat:@"http://%@:%@/state.xml",IP,Port];
NSURL *url = [NSURL URLWithString:urlAddress];
NSString *authHeader = [NSString stringWithFormat:@"Basic %@",Unique];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval: 3];
[request setValue:authHeader forHTTPHeaderField:@"Authorization"];
//NSURLConnection *connectionResponse = [[NSURLConnection alloc] initWithRequest:request delegate:self];
NSURLResponse *myURLResponse;
NSError *myError;
NSData* myDataResult = [NSURLConnection sendSynchronousRequest: request returningResponse:&myURLResponse error:&myError];
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:myDataResult];
XMLParser *parser = [[XMLParser alloc] initXMLParser];
//parser.relay = [infoarray objectAtIndex:4];
//Set delegate
[xmlParser setDelegate:parser];
//Start parsing the XML file.
BOOL success = [xmlParser parse];
이 후 몇 가지 값을 확인하므로 표시하지 않아도됩니다.
을하고 취소 할 수있는 가장 좋은 방법이 무엇인지 알 수 있습니까 그것?? – kjeldGr
취소하려는 경우 플래그를 설정하십시오. 'XMLParser'가 플래그를 검사하도록하고, 설정되어 있다면'[xmlParser abortParsing]'을 실행하십시오. –