gpt4 book ai didi

ios - 调用 dequeueReusableCell(withIdentifier :for:) swift 时内存泄漏

转载 作者:行者123 更新时间:2023-11-29 05:52:56 26 4
gpt4 key购买 nike

我必须显示几个不同的单元格。为此,我调用了 tableView(_:cellForRowAt:),并在该方法中为 UITableViceCell

的不同类使用了两个不同的 ID。

这是一个简单的代码:

class SimpleView: UITableViewController {
...

let cellIdMain = "JournalMainCellID"
let cellIdExtra = "JournalMainSceneAddNewID"

...

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

if indexPath.row == journals.count {
guard let cellAdding = tableView.dequeueReusableCell(withIdentifier: cellIdExtra, for: indexPath) as? JournalMainSceneAddNew else {
fatalError("Cannot connect to the cell")
}
return cellAdding
}

guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdMain, for: indexPath) as? JournalMainSceneCell else {
fatalError("Cannot connect to the cell")
}
cell.numberOfCountriesLabel.text = "\(journals[indexPath.row].numberOFCountries)"
return cell
}
}

当我尝试查找内存泄漏时,我发现:

enter image description here

当我点击找到的详细信息时:

enter image description here

为什么会发生这种情况?它看起来非常简单明了。

更新:图片已更新。

最佳答案

您正在编写的if条件仅在一种情况下有效,因为indexpath.row仅等于count即使它不起作用,因为在执行完 if 之后它会执行 if 之后的代码块这意味着你的 if block 是浪费为什么要使用 cell.delegate?

关于ios - 调用 dequeueReusableCell(withIdentifier :for:) swift 时内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55501778/

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