当运行表视图的代码时,我试图实例化一个自定义单元格并用值填充它,一切似乎都可以找到,直到它将值放入出口。
情侣笔记:
我知道这里首选的方法是使用 “tableView.dequeueReusableCellWithIdentifier”然而在此 我正采取不同的方式。
此外,自定义单元格中的出口连接到故事板中的相应单元格。
设置适当的代表。
提前致谢。
class FavoritesPropertyViewCell: UITableViewCell {
@IBOutlet weak var activityIndicator: UIActivityIndicatorView!
@IBOutlet weak var cellPropertyImage: UIImageView!
@IBOutlet weak var cellRoomsValue: UILabel!
@IBOutlet weak var cellSpaceValue: UILabel!
@IBOutlet weak var cellPriceRangeValue: UILabel!
@IBOutlet weak var cellCityStateZipValue: UILabel!
@IBOutlet weak var cellAddressValue: UILabel!
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
var newPropertyCell: FavoritesPropertyViewCell = FavoritesPropertyViewCell()
newPropertyCell.cellRoomsValue.text = "2 rooms"
newPropertyCell.cellSpaceValue.text = "2000 sqft"
newPropertyCell.cellPriceRangeValue.text = "20,000"
newPropertyCell.cellAddressValue.text = "123 that address"
newPropertyCell.cellCityStateZipValue.text = "Knoxvegas TN 37777"
return newPropertyCell
}
最后,错误: 致命错误:在解包可选值时意外发现nil
答案 0 :(得分:3)
var newPropertyCell: FavoritesPropertyViewCell = FavoritesPropertyViewCell()
没有设置任何插座,因为此处没有与storyboard(xib)进行通信,您只需实例化该类型。因此他们都是零。
正确的方法是使用tableView.dequeueReusableCellWithIdentifier
,它将从故事板(注册的xib)加载UI。
答案 1 :(得分:1)
您正在使用var newPropertyCell: FavoritesPropertyViewCell = FavoritesPropertyViewCell()
,您的商店没有关联。您的所有@IBOutlet
都是零。
答案 2 :(得分:0)
使用以下代码实例化您的单元格:
var cell = NSBundle.mainBundle().loadNibNamed("<Your cell xib name>", owner: nil, options: nil).first as FavoritesPropertyViewCell
当您仅使用FavoritesPropertyViewCell()进行实例化时,它将加载nib并进行必要的插座连接,但这里只会创建一个类实例。
您需要加载nib才能获得完整功能。
答案 3 :(得分:0)
确保xib文件中文件所有者中的类与您尝试加载的类匹配。