为什么我的UITableViewCell指示空值

时间:2014-12-16 18:37:47

标签: ios objective-c uitableview

我正在尝试使用UITableViewCell来更改其标题和内容。但是,我在获取tableViewCell时遇到了麻烦,因为当我调用以下方法时

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

这个方法内部:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ // 3
    static NSString *CellIdentifier = @"Flickr Photo Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; // Why is cell NULL?
    if(cell == nil){
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

在设置断点后,我可以在调试器中看到值为(null):

Cell Identifier

在我的故事板中,我将单元格标识符设置为Flickr Photo Cell

2 个答案:

答案 0 :(得分:1)

在尝试使单元格出列之前,您是否注册了具有该标识符的笔尖或单元格类?注册通常在viewDidLoad

中完成
- (void)viewDidLoad {
    [super viewDidLoad];
    UINib *cellNib = [UINib nibWithNibName:@"NameOfFlickrPhotoCellNib" bundle:nil];
    [self.tableView registerNib:cellNib forCellReuseIdentifier:@"Flickr Photo Cell"];
}

答案 1 :(得分:0)

您可以按代码创建单元格:

 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ // 3
static NSString *CellIdentifier = @"Flickr Photo Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
// Why is cell NULL?
if(!cell){
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
//here configure you cel..Be carefully this cell doen't anything of you storyboard cell.
NSLog(@"Cell is not nil:%@",[cell description]);
return cell;
}

或使用Storyboard(或xib)

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reuseINSTORYBOARD" forIndexPath:indexPath];

// Configure the cell...

return cell;
}