這是我的手機自定義類:應用墜毀,機上電池初始化
class showSugTableViewCell: UITableViewCell {
override init(style: UITableViewCellStyle, reuseIdentifier: String!) {
super.init(style: .Default, reuseIdentifier: "showSug")
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func awakeFromNib() {
super.awakeFromNib()
let categoryLbl = UILabel()
categoryLbl.frame = CGRectMake(20, 10, 100, 20)
categoryLbl.text = "Text"
contentView.addSubview(categoryLbl)
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
下面是從cellForRowAtIndexPath
代碼:
let cell = tableView.dequeueReusableCellWithIdentifier("showSug") as! showSugTableViewCell
return cell
的問題是,在電池初始化我的應用程序崩潰,和日誌說:
fatal error: unexpectedly found nil while unwrapping an Optional value
我該如何解決這個問題?
編輯:
我改變了我的代碼如下:
let cellTemp = self.sugTableView.dequeueReusableCellWithIdentifier("showSug")
var cell = cellTemp as? showSugTableViewCell!
if cell == nil {
self.sugTableView.registerNib(UINib(nibName: "showSugTableViewCell", bundle: nil), forCellReuseIdentifier: "showSug")
self.sugTableView.registerClass(showSugTableViewCell.classForCoder(), forCellReuseIdentifier: "showSug")
cell = showSugTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "showSug")
}
return cell!
然而,應用程序現在墜毀在return語句。
首先告訴我們在哪一行發生錯誤! – luk2302
我說它在單元初始化時崩潰了,它是'let cell = tableView.dequeueReusableCellWithIdentifier(「showSug」)as! showSugTableViewCell' – dpstart
好吧,確切地說:那不是初始化。您是否在IB中設置了自定義單元格,以便擁有關聯的'showSug'標識符?你把那個單元的類設置爲'showSugTableViewCell'。注意:類應該以大寫字母開頭:'ShowSugTableViewCell' – luk2302