2015-06-23 39 views
0

我有下面的代碼,NSXML分析器始終稱之爲「parseErrorOccurred」委託第一

NSString *string = "Some value"; 
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; 
self.parser = [[NSXMLParser alloc] initWithData:data]; 
self.parser.delegate = self; 
[self.parser parse]; 

後,我稱之爲「分析」方法,它會立即調用委託parseErrorOccurred,然後調用委託parserDidEndDocument

我只想調用一個方法。

在此先感謝。

回答

0

當出現嚴重錯誤時調用該委託方法,因此存在您正在解析的XML存在的問題。

該方法有一個NSError參數,這應該給你一個關於XML的問題的線索。

0

你的意思是當解析出現錯誤,你只想要parseErrorOccurred()打來電話,parserDidEndDocument()不叫?

一種可能的解決方案:寫parser.abortParsing()parseErrorEccurred()。我不確定這會實際上工作,如果它失敗,請嘗試下面的解決方案:

在您的類中使用標誌來包裝解析器。在parseErrorEccurred()設置標誌爲真,然後在中檢查此標誌parserDidEndDocument()(如果它是假的,則執行其他代碼)。

希望這會解決您的問題。 :)