NSXmlparser的委托不起作用?

NSXmlparser的委托不起作用?

问题描述:

XMLParser文件单独工作,但是当我把它放到我的项目中时,我不会遇到任何错误,但我无法从URL中获取数据。我想,我的setDelegate不工作。我的xmlpar和打印功能正在工作,但其他人不工作。我不知道是什么事情?任何人都可以帮助我?NSXmlparser的委托不起作用?

我.h文件中

#import <UIKit/UIKit.h> 

@interface TestttxmlViewController : UIViewController <NSXMLParserDelegate>{ 
    NSXMLParser * pars; 
    NSString * durum; 
    NSMutableArray *arr; 
} 
-(void)print; 
-(void)xmlpar; 
@end 

- >我的.m文件

#import "TestttxmlViewController.h" 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self xmlpar]; 
} 


-(void)xmlpar{ 
    arr=[[NSMutableArray alloc]init]; 
    NSURL * url =[[NSURL alloc]initWithString:@"http://www.milliyet.com.tr/D/rss/rss/Rss_36.xml"]; 
    pars=[[NSXMLParser alloc]initWithContentsOfURL:url]; 
    durum=[[NSString alloc]init]; 
    [pars setDelegate:self]; 
    [pars parse]; 
    [self print]; 
} 
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { 
    if ([elementName isEqualToString:@"title"]) { 
     durum=elementName; 
    } 
} 
-(void)print{ 
    NSLog(@"%@",arr); 
} 

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 
    [email protected]""; 

} 


-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{ 
    if ([durum isEqualToString:@"title"]) { 
     [arr addObject:string]; 
    } 
    } 

@end 

,因为我没有使用过NSXMLParser但我认为它解析的,这可能是胡乱猜测后台线程。这意味着它可能还没有完成解析,并且您已经调用了打印arr的内容的方法。

-(void)xmlpar{ 
    //.. 
    [pars parse]; 
    [self print]; 
} 

尝试调用解析完成时调用的委托方法print方法,如果这样的存在。

编辑

通过文档细算尝试parserDidEndDocument方法调用打印

- (void)parserDidEndDocument:(NSXMLParser *)parser{ 
    [self print]; 
} 
+0

我试图this.but它仍然是行不通的。我的函数(didStartElement,didEndElement,foundCharacters)不工作。我的proplem是setdelegate? – muhammedkasva