我已经尝试了多种方法来尝试在Swift 3中获得一个简单的标题和消息表格单元格。这是我能够使用它的最远和最接近的。我在App Delegate文件的第一行收到Thread 1: Signal SIGABRT
错误,在我的控制台输出中收到libc++abi.dylib: terminating with uncaught exception of type NSException
。
细胞类。插座连接到我的故事板文件中的原型单元。
import UIKit
class MyTableCell: UITableViewCell {
@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!
}
加载表的代码
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! MyTableCell
if cell == nil {
let cell:MyTableCell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! MyTableCell
cell.textLabel?.text = posts[indexPath.row].title
cell.detailTextLabel?.text = posts[indexPath.row].message
return cell
} else {
cell.label1.text = posts[indexPath.row].title
cell.label2.text = posts[indexPath.row].message
}
return cell
}
注意:我找到了上面的代码来在线加载表格。这是我下面更简单的代码,但是无法正常工作。
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:MyTableCell = self.tableView.dequeueReusableCell(withIdentifier: "Cell") as! MyTableCell
cell.label1.text = posts[indexPath.row].title
cell.label2.text = posts[indexPath.row].message
return cell
}
答案 0 :(得分:0)
如果在调用nil
时返回tableView.dequeueReusableCell
,则必须使用指定的UITableViewCell
初始值设定项来实例化该单元格。您提供的代码转过来并再次调用tableView.dequeueReusableCell
,这将再次返回nil。
要实例化新单元格,请使用以下命令:
let cell = MyTableCell( style: .default, reuseIdentifier: "MyTableCell" )