无法在 tableview Swift 中显示核心数据

Posted

技术标签:

【中文标题】无法在 tableview Swift 中显示核心数据【英文标题】:Can't show the core data in tableview Swift 【发布时间】:2016-10-22 06:46:03 【问题描述】:
class showPageViewController: UIViewController, UITableViewDelegate, UITableViewDataSource  


@IBOutlet weak var tableView: UITableView!
var records : [Record] = []

func numberOfSections(in tableView: UITableView) -> Int 
    return 1


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 

    return records.count


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let cell = UITableViewCell()
    return cell


func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath)
    let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

    if editingStyle == .delete
        let record = records[indexPath.row]
        context.delete(record)
        (UIApplication.shared.delegate as! AppDelegate).saveContext()
        do
            records = try context.fetch(Record.fetchRequest())
         catch
            print("Failed")
        
    




override func viewWillAppear(_ animated: Bool) 
    getData()
    tableView.reloadData()


func getData()
    let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    do
        records = try context.fetch(Record.fetchRequest())
     catch
        print("123")
    



override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.


大家好,我刚刚尝试在表格视图中显示核心数据,我已经将dataSourcedelegate连接到ViewController,并且我确认核心数据中有一些数据,任何人都可以帮助我请?谢谢

【问题讨论】:

不,我可以构建应用程序并模拟它,但什么都不显示 【参考方案1】:

两个大错误:

    您无法使用默认初始化程序 UITableViewCell() 创建单元格,您必须将其出列。

    您必须在数据源数组中获取索引路径的项目并将属性值分配给单元格的标签。

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        let record = records[indexPath.row]
        cell.textLabel!.text = record.<nameOfProperty>
        return cell
    
    

cell 是 Interface Builder 中指定的标识符。&lt;nameOfProperty&gt; 是数据模型中的属性。

【讨论】:

以上是关于无法在 tableview Swift 中显示核心数据的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3 tableView 未在 reloadData() 上更新

在 Swift TableView 中显示 JSON 数据的问题

如何在 swift 中的 tableview 中的 numberOfRowsInSection 中比较和显示不同的数组计数

Swift - 保存核心数据后更新 Tableview

使用新数据搜索和重新加载 TableView 记录

带有核心数据的 TableView 中的搜索栏(使用 Swift)