下面是我遇到错误的代码:
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
currentElement = [elementName copy];
NSLog(@"didEndElement : %@",currentElement);
if ([currentElement isEqualToString:@"NewDataSet"]) {
[dicEvent setObject:catIDArray forKey:@"term_id"];
[dicEvent setObject:catArray forKey:@"cat_name"];
[dicEvent setObject:catTimgArray forKey:@"thumb_nail_url"];
[dicEvent setObject:catLimgArray forKey:@"large_image_url"];
[xmlData addObject:[dicEvent copy]];
}
}
- (void)parserDidEndDocument:(NSXMLParser *)parser {
if ([catArray count] == 0) {
UIAlertView *alert =
[[UIAlertView alloc] initWithTitle:@"Data"
message:@"No record found."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
[activityIndicator stopAnimating];
activityIndicator.hidesWhenStopped = YES;
}
else {
NSLog(@"adding category : %@", xmlData);
[tblView reloadData];
}
}当表正在加载时,我在这个method....it中得到了错误,在行returnxmlData计数中给出了错误;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"[xmlData count] 2 : %d", [xmlData count]);
return [xmlData count];
}发布于 2012-05-09 14:42:37
您发布的第一个方法中存在内存泄漏。您创建了elementName字符串的副本,但从未释放它。此外,您还没有指定如何初始化xmlData,但我敢猜测,您是用一个不属于您的数组初始化它的。在你的init方法中,确保你有:
xmlData = [[NSMutableArray alloc] init];这将确保您拥有该对象。在你的dealloc方法中,你也应该有[xmlData release]。
https://stackoverflow.com/questions/10510869
复制相似问题