我正在开发一个视图,其中包含一个分组的UITableView,并使用XMLparser来获取其数据。
我的XMLParser将NSDictionary数据存储在NSArray中。
在cellForRowAtIndexPath中我写了这个,以便动态填充UITableView:-(UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CellArticle";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
//configuration cellule
if(mParser.summaryArray == nil||[mParser.summaryArray count]==0)
{
//do nothing
}
else {
NSDictionary *sommaire=[mParser.summaryArray objectAtIndex:0];
cell.textLabel.text=[NSString stringWithFormat:@"%@",[sommaire objectForKey:kArticle]];
[mParser.summaryArray removeObject:[mParser.summaryArray objectAtIndex:0]];
}
return cell;
}
问题在于,当加载视图时,单元格设置正确但当我向下滚动表格时,单元格会混合,其中一些会丢失。 此外,当我达到表限制时,它崩溃并返回此错误:
*断言失败 - [UITableView _createPreparedCellForGlobalRow:withIndexPath:],/ SourceCache / UIKit_Sim / UIKit-1914.84 / UITableView.m:6061
*由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'UITableView dataSource必须从tableView返回一个单元格:cellForRowAtIndexPath:'**
请问有什么问题?
答案 0 :(得分:0)
而不是你的// do nothing
,你宁愿做return nil;
吗?否则,您只需返回一个填充空白标签文本的单元格。
修改强>
可以在这里添加NSLog():
cell.textLabel.text=[NSString stringWithFormat:@"%@",[sommaire objectForKey:kArticle]];
NSLog(@"kArticle = '%@' text = '%@'", kArticle, cell.textLabel.text);
[mParser.summaryArray removeObject:[mParser.summaryArray objectAtIndex:0]];