2014-04-01 75 views
0

我是新來的ObjectiveC的實例,我試圖在這篇文章中描述的解析XML文件:如何更改委託爲對象

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

麻煩的是,我不通過「創建和初始化對象的方法也將它設置爲NSXMLParser實例的新委託」,瞭解本文在步驟3中的含義。

這是否需要將方法添加到MyElement類中,還是將代碼添加到頂層對象中?

任何人都可以給他們這裏的含義代碼示例?

回答

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 

填寫方法的行爲來實際進行解析。

+0

謝謝!我將哪個.m文件放入? 我有默認的AppDelegate文件,以及與故事板一起出現的ViewController文件。 然後我創建了新的類MyElement,上面的MyElement文件也是這樣嗎?我已經有ViewController文件中的第一個代理設置。那麼我會有兩套委託代碼? – acousticape

+0

在執行解析的文件上。查看本教程:http://wiki.cs.unh.edu/wiki/index.php/Parsing_XML_data_with_NSXMLParser – EhTd

+0

再次感謝!你指給我的例子幫助我弄清楚了! – acousticape

0

這意味着當您創建MyElement實例時,將其設置爲NSXMLParser的委託。