gpt4 book ai didi

objective-c - dequeueReusableCellWithIdentifier 总是返回 nil(不使用 Storyboard)

转载 作者:技术小花猫 更新时间:2023-10-29 11:11:24 24 4
gpt4 key购买 nike

我正在使用重用标识符以编程方式创建单元格。

注意 - 我没有使用 Storyboard来创建单元格

每当 cell 出队时,cell 为 nil,因此需要使用 alloc 重新创建 cell,这是昂贵的。

编辑(又添加了 1 个问题并更正了代码)

问题

  • 为什么这个 dequeue 总是返回 nil ?我该如何纠正它?
  • dequeue 是否仅在与 Storyboard/nib 文件一起使用时才有效?

代码

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

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if(!cell) //Every time cell is nil, dequeue not working
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

}

return cell;
}

最佳答案

您需要先将CellIdentifier 设置为Cell。你在这样做吗?当您创建一个新单元格时,您需要将此标识符 Cell 分配给它。只有这样 iOS 才能使用该标识符dequeueReusableCellWithIdentifier。以编程方式,您可以这样做 -

UITableViewCell *cell = [[UItableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"Cell"];

您也可以从 Interface Builder 设置标识符 -

enter image description here

关于objective-c - dequeueReusableCellWithIdentifier 总是返回 nil(不使用 Storyboard),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13379547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com