0

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

干杯

4

1 回答 1

1

还会从哪里使用它?除了 C 函数、根类或另一个根类的子类。

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

日志消息看起来像是来自调试器,与您使用 NSXMLParser 无关。调试器是否中断了您的应用程序?如果是这样,请查看它,看看它说了什么。

于 2011-01-02T11:20:17.370 回答