致命错误:在UITableViewCell中展开可选值错误时意外发现nil?

时间:2018-09-06 10:22:19

标签: ios swift uitableview tableview

我正在使用故事板,我具有自定义的tableviewcell类。我将故事板中的商店拖到了tableviewcell。在这种情况下,我为此类组件添加了边角和颜色。但是我收到此错误致命错误:在展开可选值时意外发现nil 。如何解决

我在tableviewcell类中的代码是

import UIKit

class detailsTableViewCell: UITableViewCell {

@IBOutlet weak var chargesTableViewCellView: UIView!
@IBOutlet weak var typeLbl: UILabel!

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code

    chargesTableViewCellView.layer.borderColor = UIColor(red: 0.10, green: 0.39, blue: 0.65, alpha: 1.0).cgColor // Here I'm getting error
    chargesTableViewCellView.layer.borderWidth = 2.0
    chargesTableViewCellView.layer.cornerRadius = 10.0
}

3 个答案:

答案 0 :(得分:1)

我认为您在单个自定义类中使用了不止一个单元,因此您需要添加带有重复使用标识符的支票:

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
   // "identifier" is a cell identifier so please change this identifier with your cell identifier witch is used this outlet
        if self.reuseIdentifier == "identifier" {
    chargesTableViewCellView.layer.borderColor = UIColor(red: 0.10, green: 0.39, blue: 0.65, alpha: 1.0).cgColor // Here I'm getting error
        }

    chargesTableViewCellView.layer.borderColor = UIColor(red: 0.10, green: 0.39, blue: 0.65, alpha: 1.0).cgColor // Here I'm getting error
    chargesTableViewCellView.layer.borderWidth = 2.0
    chargesTableViewCellView.layer.cornerRadius = 10.0
}

您需要添加reuseIdentifier的支票,其中包含该出口的单元格。这将为您工作。

答案 1 :(得分:0)

您可以像这样为自定义视图创建一个类

import UIKit

class CornerView: UIView {

func setup() {

    self.layer.borderColor = UIColor(red: 0.10, green: 0.39, blue: 0.65, alpha: 1.0).cgColor
    self.layer.borderWidth = 2.0
    self.layer.cornerRadius = 10.0

}

override init(frame: CGRect) {
    super.init(frame: frame)
    setup()
}
required public init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    setup()
}

}

然后您可以从自定义类继承

@IBOutlet weak var chargesTableViewCellView: CornerView!

注意:确保故事板中的单元格标识符在ViewController中相同

答案 2 :(得分:0)

转到“界面生成器”,然后删除所有对该文件的引用。选择情节提要容器,然后在“界面生成器”中单击最右边的按钮。您将在其中找到参考文献列表。为每个按钮单击(x)。

然后重新连接。

如果您更改名称,复制粘贴或在情节提要中的内容周围移动,有时引用会混合在一起。在Xcode上看起来都不错,但是引用的id s不匹配。