问题: tableView Controller在表中未显示categoryArray项。
诊断:
-触发第一个tableView numberOfSections方法并返回1(print(categoryArray.count)
-第二个tableView cellForRowAt方法永远不会启动(打印语句无效)
-Table View Controller不需要委托。但是,我试图添加tableView.delegate = self
-重新启动X代码没有帮助
问题: 为什么第二个tableView方法不起作用以及如何解决?
import UIKit
import CoreData
class CategoryViewController: UITableViewController {
var categoryArray = [Category]()
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
override func viewDidLoad() {
super.viewDidLoad()
loadCategories()
}
// MARK: - TableView DataSource Methods
override func numberOfSections(in tableView: UITableView) -> Int {
return categoryArray.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
print("this should print")
let cell = tableView.dequeueReusableCell(withIdentifier: "CategoryCell", for: indexPath) as! CategoryCell
let category = categoryArray[indexPath.row]
cell.categoryNameTextField.text = category.name
return cell
}
答案 0 :(得分:1)
代替numberOfSections
实施numberOfRows
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return categoryArray.count
}
在viewDidLoad
末尾重新加载表格视图
override func viewDidLoad() {
super.viewDidLoad()
loadCategories()
tableView.reloadData()
}
如果loadCategories()
包含某些内容,则在加载数据时异步重新加载表视图。