是否有人知道在text
方法的自定义UILabel
中为UITableViewCell
设置cellForRowAtIndexPath
属性时发生此错误的原因?
主题1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)
答案 0 :(得分:1)
在我看来,您正试图访问“电话号码”上的UILabel' UITableViewCell直接&设置文本。在这种情况下,UILabel通常是Optionals - 所以你需要首先打开可选项(以确保其值实际存在 - 即非零)。
尝试一下,让我知道它是否有帮助!
if let b = cell.bookPoster {
b.text = "Hello World"
}
如果这样可以解决错误,我建议您阅读Optionals。
答案 1 :(得分:0)
您必须在NIB中声明单元格并在代码中加载NIB并从中加载单元格,或者在不使用NIB时,第一次出列单元格时,必须创建所有子视图并且通常将它们添加到单元格的内容视图中。那么你可以访问单元格的内容,但是每个被dequed的单元格必须首先从某个地方进行初始化测试。
简单地将出列的单元格转换为子类类型是不够的。
答案 2 :(得分:0)
你应该得到这样的细胞:
var cell = tableView.dequeueReusableCellWithIdentifier("reuseCell", forIndexPath: indexPath) as bookCell
您需要提供indexPath参数。
答案 3 :(得分:0)
我的猜测是你没有为tableView注册单元格的nib。
在viewDidLoad
方法中,您应该执行以下操作:
myTableView.register(UINib.init(nibName: "myCellNibName"), bundle: nil), forCellReuseIdentifier: "reuseCell")
这样你的笔尖就会被加载并准备好使用。