如何将委托更改为对象的实例

时间:2014-04-01 21:53:59

标签: ios objective-c xml-parsing delegates tree-structure

我是ObjectiveC的新手,正在尝试解析XML文件,如本文所述:

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/XMLParsing/Articles/ConstructingTrees.html

麻烦的是,我不明白这篇文章在第3步中的意思是“创建和初始化对象的方法也将它设置为NSXMLParser实例的新委托。”

这是否需要向MyElement类添加方法,还是将代码添加到顶级对象中?

任何人都可以提供他们在这里的含义的代码示例吗?

2 个答案:

答案 0 :(得分:0)

这意味着当您创建MyElement实例时,将其设置为NSXMLParser的委托。

答案 1 :(得分:0)

您需要设置将处理解析器函数的委托。

在您的.h文件中:

@interface MyParser : NSObject <NSXMLParserDelegate>

在您的.m文件中:

NSXMLParser *parser = [[NSXMLParser alloc] initWithData:dataToParse];
[parser setDelegate:self];

这会将您的文件链接到解析器,并希望您的类具有处理解析工作的所有方法:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict;
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

填写方法的行为以实际进行解析。