По сути, я хочу написать класс для разбора XML-документа для моих приложений для iphone.
Вот мой файл заголовка для парсера, который анализирует ленту новостей
@interface NewsXML : NSObject<NSXMLParserDelegate>
{
@private
NSXMLParser *xmlParser;
NSString *currentElement;
NSMutableString *currentTitle;
NSMutableString *currentDate;
NSMutableString *currentDetail;
NSMutableString *currentImageURL;
NSMutableString *currentThumbnailURL;
NSMutableString *currentAlt;
}
@property (nonatomic, assign) NSObject<NewsXMLDelegate> *delegate;
@property (nonatomic, strong) NSMutableArray *newsItems;
@property (nonatomic, strong) NSURL *url;
- (void)fetch;
@end
Существует массив newsItems, который содержит извлеченные объекты из XML после того, как метод fetchnamed.
Однако в моей программе есть несколько типов XML-файлов, которые я бы хотел проанализировать. Каждый тип XML-файла имеет свои поля. (Например: заголовок, дата, подробности и т. д.)
Я создаю другой класс (например, NewsItem, FooItem, AbcItem) для хранения элементов из разных файлов XML.
Я до сих пор не могу понять, как сделать этот класс XML-анализатора более общим, чтобы NSMutableArray элементов могхранить разные типы элементов (NewsItem, FooItem ..) для каждого случая. Теперь мне нужно написать разные классы синтаксического анализатора XML для каждого файла XML.
Итак, как это можно сделать в более общем виде?
РЕДАКТИРОВАТЬ
Извините за неясность. Когда синтаксический анализатор анализирует каждый элемент, он создаст новый объект, такой как «NewsItem», «FooItem» для хранения данных и т. Д.Затем добавьте его в массив.Однако класс синтаксического анализатора не должен знать о существовании этих классов (поскольку все больше и больше классов элементов будет добавлено позже).Тогда как этот класс парсера xml может создавать правильные объекты и правильно добавлять их в массив?Есть ли способ инициализировать класс парсера классом элемента?