gpt4 book ai didi

ios - Objective C - cellForRowAtIndexPath 单元格永远不会为零?

转载 作者:行者123 更新时间:2023-11-29 01:39:46 24 4
gpt4 key购买 nike

我正在使用 QuickBlox 框架构建一个聊天应用程序。下面是 cellForRowAtIndexPath 代码。

有些事情我只想对每个单元格执行一次(例如下载图像),因此据我了解,我应该添加 if (!cell) block 来执行此操作。

但是,即使是第一次加载 TableView ,该 block 也不会真正触发。为什么会这样?

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

QBChatMessage *message = [[ChatService shared] messagsForDialogId:self.dialog.ID][indexPath.row];
ChatMessageTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ChatMessageCellIdentifier];

if (!cell) {
// some things I only want to do once here, such as download images. but it never fires
}

[cell configureCellWithMessage:message];
return cell;
}

最佳答案

如果您没有使用 registerClass:forCellReuseIdentifier: 注册单元格,则调用 dequeueReusableCellWithIdentifier: 只会返回 nil

删除您对 registerClass:forCellReuseIdentifier: 的使用然后 dequeueReusableCellWithIdentifier: 可以返回 nil 并且您可以创建一个新的单元格并正确地初始化它你的 if 语句:

if (!cell) {
cell = [[ChatMessageTableViewCell alloc] init...]; // use proper init method
// setup cell as needed for first time
}

关于ios - Objective C - cellForRowAtIndexPath 单元格永远不会为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32542997/

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