저는 rss 피드를 읽고 UITableViews로 제공 할 앱을 만들고 있습니다. 나는 Google에서 검색했으며 여기에서 AI는 LibXML을 사용하기로 결정했습니다.XML 문서를로드하고 구문 분석하면 아이폰에 GUI가 생깁니다.
내 앱이 시작될 때 앱이 인터넷에 연결되어 있는지 확인하고 일부 데이터를 추출하는 RSS 피드를 가져 와서 tableViews로 uiTabBar를 만듭니다. 첫 번째 RSS 피드를 구문 분석하고 UITabBar을 만든 후에 uuTabBar의 각 버튼에 대해 다른 RSS 피드 (카테고리)가 있습니다. 내가 좋은 인터넷 연결 (와이파이) 및 심지어 3G 내 애플 리케이션이 정말 좋은 작동하지만 인터넷 연결이 내 애플 리케이션을 겪을 때.
나는 모든 피드를 하나씩 파싱하고 메인 스레드에서 GUI가 응답하지 않고 문제가되기 때문에. 내 피드를 구문 분석 LibXML을 사용
, 내가 이런 식으로 작업을 수행합니다
CXMLDocument *rssParser = [[[CXMLDocument alloc] initWithContentsOfURL:url options:0 error:nil] autorelease];
NSArray *resultDate = NULL;
resultDate = [rssParser nodesForXPath:@"//channel" error:nil];
for(CXMLElement *date in resultDate)
{
NSString *data = (NSString *)[[date childAtIndex:12] stringValue];
[self setLastBuildDate:[[self parseDate:data] copy]];
break;
}
NSArray *resultNodes = NULL;
resultNodes = [rssParser nodesForXPath:@"//item" error:nil];
for(CXMLElement *resultElement in resultNodes)
{
NSMutableDictionary *feed = [[NSMutableDictionary alloc] init];
int counter;
for(counter = 0; counter < [resultElement childCount]; counter++)
{
[feed setObject:[[resultElement childAtIndex:counter] stringValue] forKey:[[resultElement childAtIndex:counter] name]];
}
[links addObject:[feed objectForKey:@"link"]];
[feedsList addObject:[feed copy]];
[feed release];
}
[newsTable reloadData];
나는 내가의 UITabBar의 버튼을 누르면 첫 번째 버튼의 공급 및 다른 사람을 구문 분석을 시도하지만 난 -didselectitem 이벤트에서 피드를 잡고 파싱하는 함수를 호출 할 수 없습니다.
이제 다른 하나의 스레드에서 파싱을 생각하고있었습니다 ... 누군가가 내게 포인터를 줄 수 있습니까?
미리 감사드립니다.
작동합니다. 감사합니다. –