Я только что создал подкласс NSObject, который инициализирует NSXMLParser, анализирует XML и затем вызывает метод в делегате, который я передаю подклассу:
Инициализатор:
- (id)initWithData:(NSData *)data interestingKeys:(NSSet *)interestingKeys_
itemElm:(NSString *)itemElement_ delegate:(id <XDelegate>) delegate_
{
if((self = [super init])) {
self.delegate = delegate_;
//create parser and start parsing
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
parser.delegate = self;
[parser parse];
[parser release];
}
return self;
}
Вызов метода в делегате:
- (void) parserDidEndDocument:(NSXMLParser *)parser
{
//calls parserDidFinishParsingData: in delegate class
[self.delegate parserDidFinishParsingData:self.arrayOfDictionaries];
}
Затем я могу взять проанализированные данные (которые хранятся в self.arrayOfDictionaries
) и использовать их в классе делегата.
Проблема в том, что я получаю следующие сообщения журнала:
[Switching to thread 11523]
[Switching to thread 11523]
Я вызываю проблемы для себя, помещая действие NSXMLParser в объект NSObjectподкласс?
DDXMLParser.h: https://gist.github.com/762235
DDXMLParser.m: https://gist.github.com/762236
Вариант использования: https://gist.github.com/762237
Приветствия