我有一个从表格单元格中的三个UILabel链接到一个自定义类,这是一个与我的VC(视图控制器)不同的文件。 listOfTasks
是一个里面有元组的字典。这是相关代码:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("MyCustomTableViewCell", forIndexPath: indexPath) as! MyCustomTableViewCell
let (name,description,date) = listOfTasks[indexPath.row]
cell.title.text = name //Here I get the error: "fatal error: unexpectedly found nil while unwrapping an Optional value"
cell.subtitle.text = description
cell.date.text = date
return cell
}
为什么它会给我这个错误?
我已经检查了我的连接。
P.S。对于认为这是this的副本的人来说,该问题的答案并不能解决我的问题。
编辑:MyCustomTableViewCell
的代码:
import UIKit
class MyCustomTableViewCell: UITableViewCell {
@IBOutlet weak var title: UILabel!
@IBOutlet weak var subtitle: UILabel!
@IBOutlet weak var date: UILabel!
}
变量:
cell.title
:nil
cell.subtitle
:nil
cell.date
:nil
编辑2:FirstViewController
:
编辑3:<罢工>也许我没有彻底检查我的连接。圆圈在课堂上是空的是正常的吗? 参见编辑7。
编辑4:无论何时我尝试为其分配.text
值,我都会收到相同的错误。我尝试在我链接的课程中这样做;同样的错误。
编辑5:我似乎没有弱连接的事实;强者仍然给我错误。
编辑6:我uploaded my project files to GitHub对任何有兴趣看他们的人。{/ p>
编辑7:管理以使@IBOutlet
正常工作。
答案 0 :(得分:1)
我认为你应该删除下面的代码:
self.tableView.registerClass(TableViewCell.self, forCellReuseIdentifier: "Cell")
答案 1 :(得分:1)
In `MyCustomTableViewCell`,you can change your label property weak to strong
Only this change is required.My code will help you.
var listOfTasks : [(String,String,String)] = []
将变量声明为全局
listOfTasks = [ ("Hey There","Welcome","12:00"), ("Hi","Hello","1:00") ]
比这行。这段代码工作正常。
答案 2 :(得分:1)
点击XCode右上角的两个隔行扫描圆圈。这将屏幕分成两部分。确保一方是故事板,另一方是UITableViewCell的自定义子类。接下来,单击+保持并从每个空圆圈拖动到正确的视图(因此,对于标签,确保它已连接到预期的标签。)
在执行此操作之前,您可能还想清除单元格中的所有现有连接。在故事板中执行此操作,按住shift并右键单击tableView中的单元格。确保从下拉列表中选择单元格。然后单击屏幕右上角带有圆圈的箭头。这将显示现有的插座连接。只需按任意现有的x旁边的x,这样就不会有任何“僵尸网点”。
答案 3 :(得分:0)
当我上次制作自定义TableViewCell类时,我不得不添加如下代码:
init(style: UITableViewCellStyle, reuseIdentifier: String) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
您是否正在为UITableViewCell实现所有必需的方法?