나는 간단한 RSS 리더를 만들었습니다. 앱이 xml 파일을 배열에로드합니다. 드릴 다운 RSS 리더기 iphone
지금 내가 먼저 프로그래밍 기능을 드릴 다운 추가하는 가장 좋은 방법은 무엇 배열에로드 된 내 Atom 피드에 카테고리를 추가했습니다. 이제 범주 만 배열에로드되어 표시됩니다.
나는 간단한 RSS 리더를 만들었습니다. 앱이 xml 파일을 배열에로드합니다. 드릴 다운 RSS 리더기 iphone
지금 내가 먼저 프로그래밍 기능을 드릴 다운 추가하는 가장 좋은 방법은 무엇 배열에로드 된 내 Atom 피드에 카테고리를 추가했습니다. 이제 범주 만 배열에로드되어 표시됩니다.
애플은 드릴 다운의 tableview을 보여주는위한 좋은 샘플 응용 프로그램을 제공하는 구현 코드입니다 . 그런 다음 사용자가 행을 탭하면 선택한 카테고리와 연결된 게시물의 배열을 가져 와서 새보기 컨트롤러에 전달합니다. 그런 다음 [[self navigationController] pushViewController:nextViewController animated:YES];
을 사용하여 뷰 컨트롤러를 스택으로 푸시합니다.
값의 배열을 일반 UITableViewController
서브 클래스를 작성 :
이
은.....
loading xml file <snip>
.....
- (void)parserDidStartDocument:(NSXMLParser *)parser {
NSLog(@"found file and started parsing");
}
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError {
NSString * errorString = [NSString stringWithFormat:@"Unable to download story feed from web site (Error code %i)", [parseError code]];
NSLog(@"error parsing XML: %@", errorString);
UIAlertView * errorAlert = [[UIAlertView alloc] initWithTitle:@"Error loading content" message:errorString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[errorAlert show];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
//NSLog(@"found this element: %@", elementName);
currentElement = [elementName copy];
if ([elementName isEqualToString:@"entry"]) {
// clear out our story item caches...
Categoryentry = [[NSMutableDictionary alloc] init];
currentID = [[NSMutableString alloc] init];
currentTitle = [[NSMutableString alloc] init];
currentSummary = [[NSMutableString alloc] init];
currentContent = [[NSMutableString alloc] init];
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
//NSLog(@"ended element: %@", elementName);
if ([elementName isEqualToString:@"entry"]) {
// save values to an entry, then store that item into the array...
[Categoryentry setObject:currentTitle forKey:@"title"];
[Categoryentry setObject:currentID forKey:@"id"];
[Categoryentry setObject:currentSummary forKey:@"summary"];
[Categoryentry setObject:currentContent forKey:@"content"];
[categories addObject:[Categoryentry copy]];
NSLog(@"adding category: %@", currentTitle);
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
//NSLog(@"found characters: %@", string);
// save the characters for the current item...
if ([currentElement isEqualToString:@"title"]) {
[currentTitle appendString:string];
} else if ([currentElement isEqualToString:@"id"]) {
[currentID appendString:string];
} else if ([currentElement isEqualToString:@"summary"]) {
[currentSummary appendString:string];
} else if ([currentElement isEqualToString:@"content"]) {
[currentContent appendString:string];
}
}
- (void)parserDidEndDocument:(NSXMLParser *)parser {
[activityIndicator stopAnimating];
[activityIndicator removeFromSuperview];
NSLog(@"all done!");
NSLog(@"categories array has %d entries", [categories count]);
[newsTable reloadData];
}
오픈 소스 RSS/Atom Parser for iPhone을 방금 출시 했으므로 유용 할 것입니다.
나는 그것에 대해서도 당신의 생각을 듣고 싶습니다!
ver. 감사합니다. 그것이 제가 찾고있는 것입니다. – bing