很简单的代码:
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已正确连接到情节提要中的原型单元中。为什么会出现此错误?
在代码中创建视图时,其IBOutlet属性无法正确连接。您需要从dequeueReusableCellWithIdentifier以下位置获得的版本:
IBOutlet
dequeueReusableCellWithIdentifier
let cell = tableView.dequeueReusableCellWithIdentifier("BookCell") as BookTableViewCell