Хммм, currentNews.newsTitle меняется каждый раз, и как только он читает закрывающий тэг rss, он имеет значение последнего фида.Какой тип объекта у вас currentNews?Если вы хотите сохранить все разные заголовки, то вам нужно добавить их к какому-либо объекту, который содержит несколько значений, например массив, когда вы найдете закрывающий тег описания, просто скопируйте строку для currentNodeContent в отдельный экземпляр новостей.
Я бы фактически выделил экземпляр currentNews в теге didEndElement вне любого сравнения на тот случай, если у вас будет больше элементов для поиска.Этот закрывающий тег, вероятно, выглядит следующим образом:
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"title"]) {
self.currentNews.newsTitle = [[NSString alloc] initWithString:currentNodeContent];
}
if ([elementName isEqualToString:@"description"]) {
self.currentNews.newsDescription = [[NSString alloc] initWithString:currentNodeContent];
}
if ([elementName isEqqualToString:@"link"]) {
self.currentNews.newsLink = [[NSString alloc] initWithString:currentNodeContent];
}
if ([elementName isEqualToString:@"guid"]) {
self.currentNews.newsGuid = [[NSString alloc] initWithString:currentNodeContent];
}
if ([elementName isEqualToString:@"pubDate"]) {
self.currentNews.newsPubDate = "probably a date formatter here";
}
if ([elementName isEqualToString:@"cathegory"]) {
self.currentNews.newsCathegory = [[NSString alloc] initWithString:currentNodeContent];
}
blah...
blah...
if ([elementName isEqualToString:@"item"]) {
[news addObject:currentNews];
[self.currentNews.newsTitle release];
[self.currentNews.newsDescription release];
[self.currentNews.newsLink release];
[self.currentNews.newsGuid release];
blah...
blah...
blah...
}
}
И выделите ваш объект currentNews в вашем методе init (удалите его из didStartElement) и освободите его в вашем методе dealloc.Да, и @Louie прав, вам нужно смотреть на ваши новости как на объект массива, который, очевидно, имеет несколько currentNews, этот currentNews или элемент - это то, о чем должен беспокоиться ваш парсер.После анализа всего элемента в «только одном элементе» вы добавляете его в свой массив новостей, когда он читает последний тег элемента для этого «одного элемента», потому что после этого ваш анализатор просто будет зацикливаться и искать следующий элемент.