我刚刚创建了一个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
干杯
答案 0 :(得分:1)
你在哪里使用 else ?除了C函数,根类或另一个根类的子类。
从您自己的自定义Cocoa对象创建和使用Cocoa对象没有任何问题。
日志消息读取来自调试器,与您使用NSXMLParser无关。调试器是否会中断您的应用程序?如果是这样,请查看它并查看其内容。