当我尝试创建自定义表格单元格时,我的程序在cellForRowAtIndexPath
方法中不断崩溃。我在代码中的每一行都设置了断点,在尝试使用错误 unexpectedly found nil while unwrapping optional value
创建单元格变量后代码失败。我之前已多次成功使用自定义表格单元格,并且没有遇到过这个问题。这似乎很简单,但我无法弄清楚出了什么问题。也许xcode中的某些东西改变了我不知道的东西?任何帮助表示赞赏。谢谢!...另外,我确实在viewDidLoad
注册了自定义单元格。我也会包含该代码。
var nib = UINib(nibName: "FeedTableViewCell", bundle: nil)
tableView.registerNib(nib, forCellReuseIdentifier: "feedCell")
下面的探针代码:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:FeedTableViewCell = tableView.dequeueReusableCellWithIdentifier("feedCell", forIndexPath: indexPath) as! FeedTableViewCell
cell.descriptionLabel.text = "Testing the description label of my cell."
return cell
}
更新
这个项目和其他有效的项目之间的一个区别是,Xcode现在促使我在之后放一个爆炸(!),而在我从未使用过之前。如果我不添加(!)它会给我错误消息“AnyObject不能转换为FeedTableViewCell
”
如! FeedTableViewCell
- 而不是FeedTableViewCell
FeedTableViewCell类
import UIKit
class FeedTableViewCell: UITableViewCell {
@IBOutlet weak var descriptionLabel: UILabel!
@IBOutlet weak var priceLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
priceLabel.font = UIFont(name: "AvenirNext-Bold", size: 30.0)
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
答案 0 :(得分:4)
花了太多时间试图让它发挥作用。我修改了我的自定义表格单元格,创建了一个全新的单元格,以完全相同的方式设置它,现在一切正常。仍然不知道发生了什么,但我想从中得到的教训是,有时你只需要核对它并重新开始。
答案 1 :(得分:0)
你应该像这样使用
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("feedCell", forIndexPath: indexPath) as FeedTableViewCell
cell.descriptionLabel.text = "Testing the description label of my cell."
return cell
}
如需更多帮助,请使用此链接http://shrikar.com/blog/2015/01/17/uitableview-and-uitableviewcell-customization-in-swift/
答案 2 :(得分:-1)
你应该使用
var cell:FeedTableViewCell = tableView.dequeueReusableCellWithIdentifier("feedCell",) as! FeedTableViewCell
NSIndexPath
可能会出现此问题。
HTH,享受编码!!