【问题标题】:Xcode 9 Swift 4 Terminated due to memory issue (returning a cell)Xcode 9 Swift 4 由于内存问题而终止(返回一个单元格)
【发布时间】:2018-08-11 14:26:21
【问题描述】:

现在我知道还有很多其他问题存在同样的问题,但是,它们都没有在我的问题上崩溃。

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "customCell") as! CustomTableViewCell

    cell.selectionStyle = UITableViewCellSelectionStyle.none
    cell.cellView.layer.cornerRadius = cell.cellView.frame.height / 2

    cell.animalLbl.text = elements[indexPath.row]
    cell.animalImage.image = UIImage(named: elements[indexPath.row])
    cell.animalImage.layer.cornerRadius = cell.animalImage.frame.height / 2

    return cell
}

返回单元格

这就是导致我的问题的原因。我的数组只有 10 个项目长,它在模拟器上运行良好。在我将所有图像添加到表格视图中之前,它在我的 iPad 上也可以正常工作。

这是我的数组:

let elements = ["The Perfect Apps", "Soft Boiled", "Medium Boiled", "Hard Boiled", "Scrambled","Fried", "Poached", "Rate", "Credits","Website"]

【问题讨论】:

  • 你能显示元素数组吗?
  • 我已经添加了数组@Sh_Khan
  • 请不要发布代码图片。

标签: ios swift uitableview cocoa-touch


【解决方案1】:

看起来您没有将 indexPath 传递到您的单元格中。您可能想改用它:

let cell = tableView.dequeueReusableCell(withReuseIdentifier: "customCell", for: indexPath) as! CustomTableViewCell

另外,您可能没有注册该单元。这个总是让我绊倒并导致无法解释的崩溃(确保它在您的 viewDidLoad 中):

tableView.register(CustomTableViewCell.self, forCellWithReuseIdentifier: "customCell")

编辑: 在意识到您使用的是笔尖后,您可能想尝试将其作为您的注册单元。您可能想要进入您的故事板并仔细检查您的 nib 是否命名为 CustomTableViewCell。如果不是,请将其更改为任何名称:

let nib = UINib(nibName: "CustomTableViewCell", bundle: nil)
tableView.register(nib, forCellWithReuseIdentifier: "customCell")

【讨论】:

  • 我没有任何名为 CustomCell 的东西,这应该是什么? (我有标识符,但没有实际的东西。)
  • @MattPidd 道歉。我已将其重命名为您使用过的正确单元格 (CustomTableViewCell)。我已经编辑了上面的代码。
  • 我遇到了另一个错误。在主要问题中附上照片。为帮助干杯
  • @MattPidd 顺便说一句,您会希望 viewDidLoad 中的所有内容都位于 super.viewDidLoad() 下方。你能确认 CustomTableViewCell 是一个实际的类吗?即类 CustomTableViewCell: UITableViewCell { }
  • 是的,它是另一个视图控制器中的一个类,已确认。这有什么区别吗?在主要问题中添加了另一张图片以寻求帮助
【解决方案2】:

最后,我的问题是我的图像文件太大,因此需要太多内存来加载。我所要做的就是降低它们的质量。

【讨论】:

  • 我正在尝试在 watchApp 中调试此错误。就您而言,您如何确定错误发生的位置?只是运气不好,还是您发现了什么可以帮助我找到问题?
  • 这真的很幸运,因为我只是在等待回复的同时重新制作了一些图形,并意识到我的图像是用于屏幕上小图片的海量文件。一旦我缩小了这些尺寸,它就可以正常工作了!你是如何成功的。
  • 让我生气的是,Apple 使用这样的消息构建代码,但没有提供支持文档的专业精神。我的意思是,“......内存问题......”到底有多无信息???
  • 我完全积极
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-17
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2018-09-28
  • 1970-01-01
相关资源
最近更新 更多