Iphone NSObject子类交换线程中的NSXMLParser
我刚刚创建了NSObject的一个子类,它初始化一个NSXMLParser,解析XML,然后调用我传递给该子类的委托中的一个方法: 初始化器:Iphone NSObject子类交换线程中的NSXMLParser,iphone,cocoa,ios,nsxmlparser,nsobject,Iphone,Cocoa,Ios,Nsxmlparser,Nsobject,我刚刚创建了NSObject的一个子类,它初始化一个NSXMLParser,解析XML,然后调用我传递给该子类的委托中的一个方法: 初始化器: - (id)initWithData:(NSData *)data interestingKeys:(NSSet *)interestingKeys_ itemElm:(NSString *)itemElement_ delegate:(id <XDelegate>) delegate_ { if((self = [su
- (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];
}
[Switching to thread 11523]
[Switching to thread 11523]
然后,我可以获取解析后的数据(存储在self.arrayOfDictionaries
)并在委托类中使用它
问题是,我收到以下日志消息:
- (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];
}
[Switching to thread 11523]
[Switching to thread 11523]
将NSXMLParser活动放入NSObject子类是否会给自己造成问题?
DDXMLParser.h:DDXMLParser.m:
用例: 干杯你还会在哪里使用它?除了一个C函数外,还有一个根类或另一个根类的子类 从您自己的自定义Cocoa对象创建和使用Cocoa对象没有错
日志消息读起来就像来自调试器,与您使用NSXMLParser无关。调试器是否中断了您的应用程序?如果是这样的话,看看它说了些什么。我可能不知道/表达我的担忧。我的应用程序经常崩溃——所以我将使用子类NSOperation,它更适合执行解析任务。Lazy Table Images应用程序包含一个示例解析操作类。