Swift 错误消息“在展开可选值时意外发现nil”,即使其单元格不是nil
xcode:9.4.1 我正在创建一个简单的表视图,但我一直得到相同的结果 在展开可选值时意外发现nil 为每个单元格中的组件设置值时出错Swift 错误消息“在展开可选值时意外发现nil”,即使其单元格不是nil,swift,xcode,Swift,Xcode,xcode:9.4.1 我正在创建一个简单的表视图,但我一直得到相同的结果 在展开可选值时意外发现nil 为每个单元格中的组件设置值时出错 import UIKit class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { @IBOutlet weak var conditionTable: UITableView! var conditions = [Conditi
import UIKit
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
@IBOutlet weak var conditionTable: UITableView!
var conditions = [Condition]()
override func viewDidLoad() {
super.viewDidLoad()
conditionTable.register(ConditionCell.self, forCellReuseIdentifier: "conditionCell")
conditionTable.delegate = self
conditionTable.dataSource = self
setInitData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func setInitData() {
conditions.append(Condition(name: "a"))
conditions.append(Condition(name: "b"))
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return conditions.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell: ConditionCell = tableView.dequeueReusableCell(withIdentifier: "conditionCell") as? ConditionCell
else {
fatalError()
}
print(cell.conditionLabel.text)
// cell.setCell(condition: conditions[indexPath.row])
return cell
}
}
我确实为我的自定义单元格命名了ConditionCell,也为标识的ConditionCell命名了
这是我的自定义单元类。
我确实向类添加了componentlabel引用。
看起来自定义视图类已成功加载,而不是nil
但是,其组件标签不是
import UIKit
class ConditionCell: UITableViewCell {
@IBOutlet weak var conditionLabel: UILabel!
func setCell(condition: Condition) {
print(conditionLabel)
conditionLabel.text = condition.name
}
}
这一行的问题在于:
conditionTable.register(ConditionCell.self, forCellReuseIdentifier: "conditionCell")
它需要UINib。将其更改为:
conditionTable.register(UINib(nibName: "ConditionCell", bundle: nil), forCellReuseIdentifier: "conditionCell")
有关更多详细信息,请检查以下内容:
插座是否连接到故事板中的标签?请参阅此以创建自定义单元:如果单元是在Interface Builder中设计的,则不得注册该单元。然后拆下防护罩。。。法塔莱罗。强制展开单元格类型。一旦成功,就永远成功。不要用前导集命名方法……删除注册部分确实解决了问题。非常感谢你!