gpt4 book ai didi

swift - 从非 tableview 类更改自定义 UITableViewCell 标签会导致错误

转载 作者:行者123 更新时间:2023-11-28 08:16:36 25 4
gpt4 key购买 nike

我有一个通用单元格 ItemCell 可以显示任何类型的项目。我的 Item 类的后代是我的 Armor 类。我在 Armor 中有一个函数覆盖 Item 中返回 ItemCell 的函数。但是,无论什么标签,当我尝试更改一个标签的文本值时,都会出现以下错误。我什至无法设置硬编码字符串。我还检查了 ItemCell 类和它的 .xib 文件,所有内容都已链接。有什么我想念的吗?让我知道您需要查看哪些代码,因为我不知道这个问题是从哪里来的。

fatal error: unexpectedly found nil while unwrapping an Optional value

CharacterTableView.swift

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
tableView.register(UINib(nibName: "ItemCell", bundle: nil), forCellReuseIdentifier: "ItemCell")
switch sections[indexPath.section] {
case "Equipped":
return Character.inventory.equippedGear[indexPath.row].cell
case "Armor":
return Character.inventory.unequippedArmor[indexPath.row].cell
case "Weapons":
return Character.inventory.unequippedWeapons[indexPath.row].cell
case "Healing":
return Character.inventory.healingItems[indexPath.row].cell
default:
return ItemCell()
}
}

盔甲.swift

override var cell: ItemCell {
let cell = ItemCell()
cell.name.text = "Name"
}

ItemCell.swift

class ItemCell: UITableViewCell {
//MARK: - IBOutlets
@IBOutlet weak var imageItem: UIImageView!
@IBOutlet weak var name: UILabel!
@IBOutlet weak var imageStat1: UIImageView!
@IBOutlet weak var labelStat1: UILabel!
@IBOutlet weak var imageStat2: UIImageView!
@IBOutlet weak var labelStat2: UILabel!
}

最佳答案

我在您的代码中发现了几个可能导致崩溃的潜在问题。

  1. 您在 tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 中注册您的单元格,但您没有使单元格出列。在我看来,您返回的单元格与请求单元格的 TableView 无关。
  2. 您有一个带有许多导出的 UITableViewCell,但您没有在任何地方设置这些导出。这意味着当在 TableView 中显示时,除名称之外的所有导出都将为 nil 并显式展开(因为 !)。
  3. 你打开 indexPath。部分并假设这些部分是您定义的字符串。我无法检查是否是这种情况,以及数据源调用是否真的带有 stings as 部分。您在调试时检查过这个吗?
  4. 默认情况下,您直接返回一个空的 ItemCell。空的意思是没有设置任何 socket ,因此是空的。标签被显式展开(因为 !),这会使您的应用崩溃。

希望能帮到您解决问题。

关于swift - 从非 tableview 类更改自定义 UITableViewCell 标签会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42426015/

25 4 0
文章推荐: c++ - 通过Qt Application约束其他应用程序的窗口大小
文章推荐: html - 行中的 Bootstrap 嵌套列与上一行中的列不对齐
文章推荐: html - 如何将导航