2012-04-29 1 views
0

최근에 TBXML에서 RaptureXML로 바뀌었고 정보를 가져 오는 것이 훨씬 쉽지만 XML 표보기가 포함 된 탭 막대 버튼을 탭하면 눈에 띄게 지연 될 수 있습니다.느린 RaptureXML 종류

- (void)loadURL { 

RXMLElement *rootXML = [RXMLElement elementFromURL:[NSURL URLWithString:@"http://api.somexml.com/xml"]]; 

[rootXML iterateWithRootXPath:@"//event" usingBlock:^(RXMLElement *event) { 
    [events addObject:[NSArray arrayWithObjects: 
         [event attribute:@"uri"], 
         [event attribute:@"displayName"], 
         [event attribute:@"type"], 
         nil]]; 
}]; 

[rootXML iterateWithRootXPath:@"//location" usingBlock: ^(RXMLElement *location) { 
    [events addObject:[NSArray arrayWithObjects: 
         [location attribute:@"city"], 
         [location attribute:@"lat"], 
         [location attribute:@"lng"], 
         nil]]; 
}]; 

[rootXML iterateWithRootXPath:@"//start" usingBlock:^(RXMLElement *start) { 
    [events addObject:[NSArray arrayWithObjects: 
         [start attribute:@"time"], 
         [start attribute:@"date"], 
         nil]]; 
}]; 



} 

내가 그것을 속도를 높이기 위해 할 수있는 일이 있나요 I 할당 또한 때 : 내있는 viewDidLoad 방법에

은 내가

events = [[NSMutableArray alloc] init]; 

[self loadURL]; 

그리고 내 loadURL 방법은 다음과 같다 "다음 한 내 행 카운트를 [events count]로하면 6 행만 얻으면 19 행을 얻게됩니다. 도와주세요.

+1

총 아니요 아니요 주 스레드에서 XML을 동 기적으로 요청하고 있습니다. 비동기 적으로 데이터를로드하는 방법을 사용하십시오. – Till

답변

2

배경 트랙까지 파싱해야합니다. 전자 다음

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
    [self loadURL]; 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     [tableView reloadData]; 
    }); 
}); 

당신은 내가 메인 스레드에있는 tableview를 다시로드하고있어 것을 알 수 있습니다. 배경 스레드에서 인터페이스 요소를 업데이트하는 것은 약간 노약입니다.

+0

너희들은 대단하다. 실제로 데이터를 비동기식으로 가져오고 싶었지만 방법을 알지 못했습니다. 그것은 많은 의미가 있습니다! – Year3000

+0

이제 문제가되는 것은 몇 가지 이유로 실제로 행 이벤트가 6 개 밖에없는 경우 행 수가 수백 개가됩니다. 내 배열에 추가 할 각각의 개별 객체에 대해 행을 만드는 느낌이 들었습니다. 어쩌면 개체를 올바르게 추가하지 않았거나 행 수를 올바르게 지정하지 않았을 수 있습니다. – Year3000

+0

나는이 질문을 사이트의 실제 질문으로 삼았습니다. 링크는 다음과 같습니다. [link] http://stackoverflow.com/questions/10377214/row-count-is-returning-the-incorrect-number-using-rapturexml – Year3000