我刚刚创建了一个 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
干杯