let cell = tableView!.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as MessageTableViewCell
let cell2 = tableView!.dequeueReusableCellWithIdentifier("Cell2", forIndexPath: indexPath) as MessageTableViewCell
第一个细胞被认可了。第二,不是。我有一个故事板,为每个原型单元设置了适当的标识符。 (动态)tableView上有两个单元格,根据我的理解应该没问题。这是我收到的确切错误:
* 由于未捕获的异常而终止应用 'NSInternalInconsistencyException',原因:'无法将单元格出列 标识符为Cell2 - 必须注册一个nib或类 标识符或连接故事板中的原型单元
如果第二个原型单元格的标识符不是“Cell2”,那么这将是完全合理的。但是它是。
以下是整个函数中的代码,请注意我甚至不返回单元格2,只是将其出列:
override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? {
let cell = tableView!.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as MessageTableViewCell
let cell2 = tableView!.dequeueReusableCellWithIdentifier("Cell2", forIndexPath: indexPath) as MessageTableViewCell
if UIApplication.sharedApplication().statusBarOrientation.isLandscape == true {
cell.messageLabel.preferredMaxLayoutWidth = cell.frame.size.width - 80
} else {
cell.messageLabel.preferredMaxLayoutWidth = cell.frame.size.width - 35
}
preferredWidth = cell.messageLabel.preferredMaxLayoutWidth
cell.messageLabel.text = friends[indexPath!.row]
cell.messageLabel.sizeToFit()
cell.messageLabel.setNeedsDisplay()
return cell
}
它在第二行崩溃(在函数内部)。
注意:我现在正在使用XCode 6 Beta 4。
答案 0 :(得分:1)
我也经历过这一点。试试这个:
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "Cell")
答案 1 :(得分:0)
我创建了一个新的笔尖,在那里重新创建了单元格,并插入了这些代码,这些代码组合在一起解决了这个问题。
var nibName = UINib(nibName: "MainTableViewCell", bundle:nil)
self.tableView.registerNib(nibName, forCellReuseIdentifier: "SecondCell")