문제

나는 다음 코드는 방법을 읽 xml 파일이 있습니다.하지만 그것은 매우 느리게 작동한다.되어 있지는 않는 충분한 길을 가져 오기 및 읽기 데이터를 빠릅니다.

if(connectionRemaining)
{
    [self LoadingPopUp];
    NSURL *tmpURl=[NSURL URLWithString:[NSString stringWithFormat:@"%@getcategory.php",[iGolfAppDelegate getServerPath]]];
    NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL:tmpURl];
    NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
    if(conn)
        myWebData=[[NSMutableData data] retain];
    connectionRemaining=NO;
}

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
[myWebData setLength: 0];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[myWebData appendData:data];
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
[connection release];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection {
//  NSString *theXML = [[NSString alloc] initWithBytes: [myWebData mutableBytes] length:[myWebData length] encoding:NSUTF8StringEncoding];
//  NSLog(@"%@",theXML);[theXML release];   
if( myXMLParser )
    [myXMLParser release];
myXMLParser = [[NSXMLParser alloc] initWithData: myWebData];
[myXMLParser setDelegate: self]; [myXMLParser setShouldResolveExternalEntities: YES];
[myXMLParser parse];[connection release];[myWebData release];
}

#pragma mark
#pragma mark XMLParsing Methods
-(void)parser:(NSXMLParser*)parser didStartElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString*)qualifiedName attributes:(NSDictionary*)attributeDict {
if([elementName isEqualToString:@"category"])
    categoryArray=[[NSMutableArray alloc]init];
else if([elementName isEqualToString:@"Prop_Category"])
    aCategory=[[Category alloc] init];
}

-(void)parser:(NSXMLParser*)parser foundCharacters:(NSString*)string {
if(!currentElementValue)
    currentElementValue=[[NSMutableString alloc] initWithString:string];
else
    [currentElementValue appendString:string];
}
-(void)parser:(NSXMLParser*)parser didEndElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString*)qualifiedName {
if([elementName isEqualToString:@"category"])
{ [LoadingAlert dismissWithClickedButtonIndex:0 animated:YES]; [LoadingAlert release];[self categoryPickerDiplay]; return;  }
else if([elementName isEqualToString:@"Prop_Category"])
{ [categoryArray addObject:aCategory];[aCategory release];aCategory=nil; }
else{   
    [aCategory setValue:currentElementValue forKey:elementName];
    [currentElementValue release];currentElementValue=nil;
}

}

나를 명확히 나의 질문을 다시합니다.

저는 관찰되는 이 방법으로 읽는 xml 는 것으로는 충분하지 않습니다.에 의해 이 방법을 사용하여 아이폰을 로드 데이터를 매우 느리게.기 때문에,아이폰을 읽기 및 비교 각 태그는 모든 시간입니다.

내가 원하는 일부 빠르게 XML 로딩 및 구축하고 있음을 보여준다

사전에 감사에 대한 지식을 공유하는 나와 함께

도움이 되었습니까?

해결책

가를 들어 애플에서 불 XMLPerformance 을 보여 주는 이 프로그램은 대NSXMLParser 성능 측면에서.체크아웃 해당 구현의 이러한 이유로.

다른 팁

이 SiesmicXML 및 TopSongs 에서 샘플 코드 adc 쇼의 몇 가지 방법 XML 구문 분석하는 원인이 최소한의 사용자 사용 시간을 기다려야합니다.

당신이 보았 이 프로그램은 C 라이브러리,나 TouchXML 래퍼가?또한,당신은 그것의 NSXMLParser 일으키는 침체?를 수행할 수 있습니 빠른 runthrough 사용하는 기기 또는 상어 프로필 응용 프로그램을 찾을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top