cellForRowAtIndexPath始终返回nil

时间:2010-09-28 11:49:56

标签: iphone cocoa-touch uitableview

我已经创建了在tableview中插入12行的示例应用程序。并且插入正常。当插入我的行后我不想在tableview的滚动期间对文本进行任何更改。所以我检查了indexpath行具有UITableViewCell的值,如果它有values表示返回该单元格,否则我们创建了新的UITableViewCell。

我的示例代码位于

之下
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;

}

// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section  {
NSLog(@"GlobalCount = %d",GlobalCount);
return GlobalCount;

}

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell *obj = (UITableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
if(obj!=nil)
{
    NSLog(@"cell indexpath row = %d",indexPath.row);
    NSLog(@"cell text = %d",obj.textLabel.text);
    return obj;
}

else {
    NSLog(@"obj==nil");
}


static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

}

if([DataTable count]>0)
    cell.textLabel.text = [DataTable objectAtIndex:0];
// Configure the cell.
return cell;

}

我的目标是什么,我不想为已经创建的索引路径行(单元格)更新任何文本(或UITableViewCell)。所以我可以在cellForRowAtIndexPath中检查这个,但它总是返回nil。如果我遗漏了什么?

我使用此行检查了

UITableViewCell *obj = (UITableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
if(obj!=nil)

Plz帮帮我?

提前致谢......

1 个答案:

答案 0 :(得分:4)

让表视图决定是否需要更新单元格。只需删除代码中的所有第一部分,一切都将顺利进行。

不要犹豫,阅读UITableView文档。