NSXMLParser在NSObject子类中切换线程

时间:2011-01-02 03:07:34

标签: iphone cocoa ios nsxmlparser nsobject

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

干杯

1 个答案:

答案 0 :(得分:1)

你在哪里使用 else ?除了C函数,根类或另一个根类的子类。

从您自己的自定义Cocoa对象创建和使用Cocoa对象没有任何问题。

日志消息读取来自调试器,与您使用NSXMLParser无关。调试器是否会中断您的应用程序?如果是这样,请查看它并查看其内容。