我是新來的ObjectiveC的實例,我試圖在這篇文章中描述的解析XML文件:如何更改委託爲對象
麻煩的是,我不通過「創建和初始化對象的方法也將它設置爲NSXMLParser實例的新委託」,瞭解本文在步驟3中的含義。
這是否需要將方法添加到MyElement類中,還是將代碼添加到頂層對象中?
任何人都可以給他們這裏的含義代碼示例?
我是新來的ObjectiveC的實例,我試圖在這篇文章中描述的解析XML文件:如何更改委託爲對象
麻煩的是,我不通過「創建和初始化對象的方法也將它設置爲NSXMLParser實例的新委託」,瞭解本文在步驟3中的含義。
這是否需要將方法添加到MyElement類中,還是將代碼添加到頂層對象中?
任何人都可以給他們這裏的含義代碼示例?
您需要設置將處理解析器函數的委託。
在您的.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
填寫方法的行爲來實際進行解析。
這意味着當您創建MyElement實例時,將其設置爲NSXMLParser的委託。
謝謝!我將哪個.m文件放入? 我有默認的AppDelegate文件,以及與故事板一起出現的ViewController文件。 然後我創建了新的類MyElement,上面的MyElement文件也是這樣嗎?我已經有ViewController文件中的第一個代理設置。那麼我會有兩套委託代碼? – acousticape
在執行解析的文件上。查看本教程:http://wiki.cs.unh.edu/wiki/index.php/Parsing_XML_data_with_NSXMLParser – EhTd
再次感謝!你指給我的例子幫助我弄清楚了! – acousticape