Iphone NSXmlparser的委托不起作用?
XMLParser文件是独立工作的,但当我把它放到我的项目中时,我并没有遇到任何错误,但我不能从URL获取数据。我想,我的setDelegate不工作。我的xmlpar和print函数工作,但其他函数不工作。ı不知道是什么问题?有人能帮我吗 我的.h文件Iphone NSXmlparser的委托不起作用?,iphone,xml-parsing,delegates,nsxmlparser,Iphone,Xml Parsing,Delegates,Nsxmlparser,XMLParser文件是独立工作的,但当我把它放到我的项目中时,我并没有遇到任何错误,但我不能从URL获取数据。我想,我的setDelegate不工作。我的xmlpar和print函数工作,但其他函数不工作。ı不知道是什么问题?有人能帮我吗 我的.h文件 #import <UIKit/UIKit.h> @interface TestttxmlViewController : UIViewController <NSXMLParserDelegate>{
#import <UIKit/UIKit.h>
@interface TestttxmlViewController : UIViewController <NSXMLParserDelegate>{
NSXMLParser * pars;
NSString * durum;
NSMutableArray *arr;
}
-(void)print;
-(void)xmlpar;
@end
这可能是一个猜测,因为我没有使用NSXMLParser,但我认为它是在后台线程中解析的。这意味着它可能还没有完成解析,并且您已经调用了一个方法来打印arr的内容 尝试在解析完成时调用的委托方法中调用print方法(如果存在) 编辑 查看完文档后,请尝试在parserDidEndDocument方法中调用print
ı尝试过这个,但仍然不起作用。我的函数didStartElement、didEndElement和foundCharacters不起作用。我的问题是setdelegate??
#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
{
durum=@"";
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if ([durum isEqualToString:@"title"]) {
[arr addObject:string];
}
}
@end
-(void)xmlpar{
//..
[pars parse];
[self print];
}
- (void)parserDidEndDocument:(NSXMLParser *)parser{
[self print];
}