2012-02-04 70 views
0

我有一個有趣的問題。 我有一個iPad應用程序,它必須解析來自Web的一些XML數據,並且它在5.0模擬器和設備中都能正常工作,但在iOS 4.3模擬器上(實際上我沒有任何4.3設備可用),它不會解析和[NSXMLParser parse]方法retuns NO 我已經嘗試下載字符串,然後將其轉換爲NSData,以及直接下載NSData並使用下載的NSData初始化解析器。NSXMLParser不會在iOS 4.3中解析,但會在5.0中解析

這裏的

-(void)parseWithURLString:(NSString *)urlString{ 
    NSURL *url = [NSURL URLWithString:urlString]; 
    if (url != nil) { 
     self.parser = [[NSXMLParser alloc] initWithContentsOfURL:url]; 
     [[self parser] setDelegate:self]; 
     if([[self parser] parse]){ 
      NSLog(@"WOOHOO!"); 
      [TestFlight passCheckpoint:@"XML has been parsed"]; 
     } 
} 

的urlString已經檢查了我的代碼和是正確的。

回答

2

登錄您的NSXMLParserparseError財產。這應該引導你知道你的問題究竟是什麼。

-(void)parseWithURLString:(NSString *)urlString{ 
    NSURL *url = [NSURL URLWithString:urlString]; 
    if (url != nil) { 
     self.parser = [[NSXMLParser alloc] initWithContentsOfURL:url]; 
     [[self parser] setDelegate:self]; 
     if([[self parser] parse]){ 
      NSLog(@"Parser completed."); 
     } 
     else { 
      NSLog(@"Parser failed. Error: %@",[self.parser parseError]); 
     } 
} 

或者,您可以實現以下協議和日誌解析過程中出現錯誤:

- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError 
+0

謝謝,好像我監督明顯。然而,問題是我現在必須解決的編碼錯誤(未知編碼) - .- 但是,我想知道爲什麼這實際上在iOS 5中工作 – Erle 2012-02-04 22:42:29

+2

很可能,NSXMLParser中的錯誤在iOS5中得到修復。該班有不少更新。 – 2012-02-05 03:33:54