【发布时间】:2011-10-28 04:30:53
【问题描述】:
我已经设置了一个 NSXMLParser 来解析 Twitter 提要,但是我遇到了内存泄漏,并且在使用了大约一百次工具之后,我无法弄清楚它在哪里!下面是我的 NSXMLParser 代码,它在 ASIHTTPRequest 接收到数据时解析。
-(void)ProcessAndParse{
NSURL *url = [config urlForFeed:@"Twitter"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
NSData *responseData = [request responseData];
myparser = [[NSXMLParser alloc] initWithData:responseData];
[myparser setDelegate:self];
[myparser setShouldResolveExternalEntities:YES];
[myparser parse];
}
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
currentElement = [elementName copy];
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
}
-(void)parserDidEndDocument:(NSXMLParser *)parser{
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
}
我知道这里有很多遗漏,但我试图在继续之前阻止这种泄漏。它似乎以 didStartElement 方法中的 currentElement = [elementName copy]; 为中心。
【问题讨论】:
标签: iphone objective-c ios cocoa-touch nsxmlparser