小编典典

Swift中的简单UITableView-意外发现nil

swift

很简单的代码:

func numberOfSectionsInTableView(tableView: UITableView?) -> Int {
    return 1
}

func tableView(tableView:UITableView!, numberOfRowsInSection section:Int) -> Int {
    return 5
}


func tableView(tableView:UITableView!, cellForRowAtIndexPath indexPath:NSIndexPath!) -> UITableViewCell! {
    let cell: BookTableViewCell = BookTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "BookCell")
    println("ip: \(indexPath.row)")
    cell.bookLabel.text = "test"

    return cell
}

在cell.bookLabel.text行上,我得到了:

fatal error: unexpectedly found nil while unwrapping an Optional value

BookTableViewCell的定义如下:

class BookTableViewCell: UITableViewCell {

    @IBOutlet var bookLabel: UILabel

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

    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

并且bookLabel已正确连接到情节提要中的原型单元中。为什么会出现此错误?


阅读 350

收藏
2020-07-07

共1个答案

小编典典

在代码中创建视图时,其IBOutlet属性无法正确连接。您需要从dequeueReusableCellWithIdentifier以下位置获得的版本:

let cell = tableView.dequeueReusableCellWithIdentifier("BookCell") as BookTableViewCell
2020-07-07