我的代码在通过cellForRowAtIndexPath约九次后跳过if(cell == nil)时出现问题。然后我的表中的项目开始重复,每9个项目就这样做。当我删除if(cell == nil)行时,表格会很漂亮,所有数据都按正确的顺序排列。但是,如果我滚动到表格的底部,我的应用程序崩溃,所以这不是一个好的解决方案。请任何想法?当我尝试重新使用tableviewcells时,重复的TableViewCell会显示出来......我如何获得新的显示?
谢谢!
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
NSString *temp = [[views objectAtIndex:indexPath.row] objectForKey:@"racer"];
NSString *val = [[views objectAtIndex:indexPath.row] objectForKey:@"pointsScored"];
// Set up the cell...
cell.textLabel.text = temp;
cell.textLabel.font = [UIFont boldSystemFontOfSize:15];
cell.detailTextLabel.text = val;
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
[temp release];
[val release];
}
return cell;
}
哇!非常感谢!情况就是这样!但是,现在当我运行它并向下滚动时,出现此错误: 2010-07-12 15:48:05.753 TabTabTab [25374:20b] *** - [UICGColor isEqualToString:]:无法识别的选择器发送到实例0x3d9edc0 2010-07-12 15:48:05.755 TabTabTab [25374:20b] ***由于未捕获异常'NSInvalidArgumentException',原因:'*** - [UICGColor isEqualToString:]:无法识别的选择器发送到实例0x3d9edc0' 任何想法?? – Rossi 2010-07-12 19:49:53
不要紧!我删除了释放线,事情进展顺利!非常感谢你的帮助。我真的很感激 – Rossi 2010-07-12 20:05:47
没有问题,但请看我更新的帖子。你不能只删除'释放'行,否则你将会泄漏这些对象,因为它们永远不会被释放。相反,只是摆脱它们,因为你不需要它们(请参阅我的代码)。请将此问题标记为已通过点击旁边的“复选框”回答 – iwasrobbed 2010-07-12 20:26:00